marianna

Передача параметров в хранимую процедуру

19.07.2010, 11:14. Показов 2369. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хочу в хранимой процедуре сделать параметром название таблицы, возможно ли это? на код ниже выдает 'синт. ошибка оклоло @nametbl'
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE PROCEDURE procimpo  AS
@nametbl VARCHAR
IF EXISTS (SELECT * FROM sysobjects
           WHERE name =@nametbl)
    BEGIN
            DROP TABLE @nametbl
    END
 
CREATE TABLE @nametbl
(
  ID INT NULL,
npd     nvarchar(9) NULL,
...
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.07.2010, 11:14
Ответы с готовыми решениями:

Передача параметров в хранимую процедуру для отчета Crystal Reports 6.0
Кто нибудь передавал параметры в отчет на основе хранимой процедуры SQL Server 7.0 ? Как это сделать?

Как записать хранимую процедуру в Access?
kak zapustit xranimuyu proceduru v Access? Set cm = New ADODB.Command Set cm.ActiveConnection = con cm.CommandType = adCmdStoredProc ...

Как из VB вызвать Хранимую функцию, а не процедуру?
Как из VB вызвать Хранимую функцию, а не процедуру

13
marianna
19.07.2010, 11:15
уже заметила одну сама
marianna
19.07.2010, 11:20
но вопрос остается открытым.
marianna
19.07.2010, 11:28
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE PROCEDURE procimpo
@nametbl VARCHAR(10)
AS
 
IF EXISTS (SELECT * FROM sysobjects
           WHERE name = '@nametbl')
     BEGIN
     DROP TABLE @nametbl
     END
 
CREATE TABLE @nametbl
(
  ID INT NULL,
npd     nvarchar(9) NULL,
...
1-ая ошибка - drop table @nametbl
2-ая ошибка - create table @nametbl
marianna
19.07.2010, 12:28
Процедуру написала. В Query Analizere проходит
Code
1
 procimpo “tbltrud”
Как вызвать из Basica с параметром?
По-разному писала текст команды – ошибка forever!
Code
1
 cmd.CommandText = 'procimpo 'tbltrud''
2 / 2 / 1
Регистрация: 19.07.2007
Сообщений: 737
19.07.2010, 13:29
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Public Function IMPORT(ByVal TableName As String) As Long
On Error GoTo err_debug
Dim cmd As ADODB.Command, p As ADODB.Parameters
    Set cmd = New ADODB.Command
    cmd.ActiveConnection = GetConnectionString()
    cmd.CommandType = adCmdStoredProc
    cmd.CommandText = 'procimpo'
    Set p = cmd.Parameters
    p.Append cmd.CreateParameter('RETURN_VALUE', adInteger, adParamReturnValue)
    p.Append cmd.CreateParameter('@nametbl', adVarChar, adParamInput, 10, TableName)
    cmd.Execute , , adExecuteNoRecords
    IMP_GetClientID = p('RETURN_VALUE').Value
lb_out:
    Set p = Nothing
    Set cmd = Nothing
    Exit Function
    
err_debug:
    LogError 'IMPORT'
    Resume lb_out
End Function
0
2 / 2 / 1
Регистрация: 19.07.2007
Сообщений: 737
19.07.2010, 13:31
Visual Basic
1
IMPORT = p('RETURN_VALUE').Value
,Sorry
0
marianna
19.07.2010, 14:27
Спасибо, проверила.
надо писать
Visual Basic
1
cmd.Parameters.Append cmd.CreateParameter('@nametbl', adVarChar, adParamInput, 10, strFile)
a p.Append и set p = cmd.Parameters - неправильные операторы
marianna
19.07.2010, 14:44
Возвращаюсь к первоначальному вопросу. Как передавать параметры из Basica я поняла.
Я нашла выход, который меня не устраивает – писать EXEC sp_rename 'tblimpo', @nametbl
в конце хранимой процедуры, т.е. переименовывать таблицу с определенным именем в произвольную. Но теперь не знаю, как удалять таблицу с переменным именем (переименованную), не могу передать команде drop и create имя таблицы как параметр.
2 / 2 / 1
Регистрация: 19.07.2007
Сообщений: 737
19.07.2010, 15:02
SQL
1
2
3
4
DECLARE @SQL VARCHAR(200)
 
@SQL='drop ' + @tablename
EXEC @SQL
0
2 / 2 / 1
Регистрация: 19.07.2007
Сообщений: 737
19.07.2010, 15:07
SQL
1
EXEC (@SQL)
0
marianna
19.07.2010, 16:52
А как быть с create - ом?
Где указывать поля?
Код ниже не проходит.
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SET @strsql='create table '  + @nametbl +
'(
ID int null,
npd     nvarchar(9) null,
fam     nvarchar(18) null,
im  nvarchar(15) null,
ot  nvarchar(15) null,
adm     nvarchar(3) null,
nasp    nvarchar(20) null,
ulc     nvarchar(30) null,
adr     nvarchar(10) null,
st int null
)'
 EXEC (@strsql)
2 / 2 / 1
Регистрация: 19.07.2007
Сообщений: 737
19.07.2010, 18:04
пробел перед скобкой ( добавь пробел, убери все спецсимовлы типа табуляций и перевода строк, все названия полей заключи в квадратные скобки (например: [ID]), задай длину переменной @strsql varchar(2000) и все проходит.
0
marianna
20.07.2010, 10:40
Спасибо. Все получилось.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.07.2010, 10:40
Помогаю со студенческими работами здесь

Передача параметров в хранимую процедуру
ПРивет всем, ПОдскажите плз, хотел сделать универсальную процедуру на выборку, по нескольким параметрам, текст примерно такой ...

Передача параметров в хранимую процедуру
Подскажите вот в sql у меня есть параметры @Author И мне нужно Передавать эти параметра при нажатия на кнопку, я совсем недавно стал...

Передача параметров в хранимую процедуру FDQuery
Собственно вопрос в этом, как их передать? Сама процедура описана, параметры есть, нету значений в них Как с помощью FDQuery их...

Добавление параметров в хранимую процедуру VS C#
Я ввожу значение в текстбокс и это значение пытаюсь добавить в параметры хранимой процедуры что бы выполнить запрос. Проблема в том, что...

Перевод параметров из VB в хранимую процедуру MS SQL Server2000
Помогите новичку! Как без особых наворотов передать в хранимую процедуру на сервере параметры из поля на форме Форма1 *.adp? На основе SP...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru