Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как передать параметры в ХП через ADO / 17 сообщений из 17, страница 1 из 1
21.08.2002, 15:47:46
    #32044945
noname
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать параметры в ХП через ADO
Извините, что беспокою вас по мелочам, но помогите новичку пожалуйста.
Я не могу через передать параметры в ХП, напишите как поступить?

Заранее спасибо, даже тем кто не поможет а прочитает хотя б!!!
...
Рейтинг: 0 / 0
21.08.2002, 15:57:42
    #32044947
harrytv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать параметры в ХП через ADO
см. ниже про RETURN 0
...
Рейтинг: 0 / 0
21.08.2002, 17:17:55
    #32044974
Maxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать параметры в ХП через ADO
Код: plaintext
1.
2.
3.
4.
5.
......
cmd.CoomandText =  "YourSP" 
set prm  = new adodb.parametr
set prm = cmd.CreateParametr( "name" ,adInteger,adParamInput,,variable)
cmd.Parametr.Append prm
............

Где cmd - adodb.Command
"name" - имя параметра
adInteger - тип передаваемого значения
adParamInput - тип параметра
,, - здесь длина,для типов char,varchar обязательна и что-бы совпадала с длиной указаного параметра в ХП
variable - передаваемое значение
см.топик "Помогите получит выходной параметр"
Удачи
...
Рейтинг: 0 / 0
21.08.2002, 18:08:47
    #32045008
noname
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать параметры в ХП через ADO
For Maxx

Так как ты написал мне (спасибо тебе конечно) я пробывал, а у меня проблема передать несколько параметров и чтоб корекктно вернулся rs! Если можешь помоги!!!
...
Рейтинг: 0 / 0
21.08.2002, 18:21:42
    #32045016
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать параметры в ХП через ADO
дык создай несколько параметров...
Код: plaintext
1.
2.
3.
4.
...
cmd.Parametrs.Append cmd.CreateParametr( "name1" ,adInteger,adParamInput,,variable1)
cmd.Parametrs.Append cmd.CreateParametr( "name2" ,adInteger,adParamInput,,variable2)
...
...
Рейтинг: 0 / 0
21.08.2002, 18:27:00
    #32045019
akuz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать параметры в ХП через ADO
Да, блин, вчера только обсуждали.
...
Рейтинг: 0 / 0
21.08.2002, 18:27:31
    #32045020
Maxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать параметры в ХП через ADO
Смотрим дальше
1. Где один параметр - там и куча
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
create procedure tra
(
 @one int,
 @two int output,
....................
 @ten nvarchar( 50 ) output
)as
begin
 declare @ret int
...............
 set @ret = @@error
 return @ret
end
типа процедура
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
dim prm as adodb.parametr
set cmd = new adodb.Command
set cmd.ActiveConnection = ......
cmd.CommandType = adStoredProc
cmd.CommandText =  "tra" 
set prm = cmd.CreateParametr( "ret" ,adInteger,adparamReturnValue)
cmd.Parametr.Apend prm
set prm = cmd.CreateParametr( "one" ,adInteger,adparamInput,,variable/value)
cmd.Parametr.Apend prm
set prm = cmd.CreateParametr( "two" ,adInteger,adparamOutput)
cmd.Parametr.Apend prm
.....................................
set prm = cmd.CreateParametr( "ten" ,adInteger,adparamOutput, 50 )
cmd.Parametr.Apend prm
cmd.Execute
yourIntvariable1 = cmb.Parametr( "ret" ).value
yourIntvariable2 = cmb.Parametr( "two" ).value
.................................................
yourStringvariable = cmb.Parametr( "ten" ).value

типа вызов
2. Что не ясно? Если что спрашивай
Удачи
...
Рейтинг: 0 / 0
22.08.2002, 19:10:14
    #32045344
noname_ For_Maxx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать параметры в ХП через ADO
Maxx help!!! Всё прочитал что было написано и всё равно не работает, хотя я в Anal_yzer запускал и всё работает а вот в Бейсике нифига.
Что делать. Проблема в том что не возвращается rs и пишет что объект rs не открыт, хотя ХП запускается . вот как я делаю

Dim rs As ADODB.Recordset
Dim cn As ADODB.Connection
Dim cmd As New ADODB.Command
Dim prm1 As New ADODB.Parameter

Set rs = New ADODB.Recordset
Set cn = New ADODB.Connection


cmd.CommandText = "z_ReportSystemPriceParam"
cmd.CommandType = adCmdStoredProc
Set prm1 = cmd.CreateParameter("@cn_reg_user", adVarChar, adParamInput, 4, "GVI")
cmd.Parameters.Append prm1
Set prm1 = cmd.CreateParameter("@startdate", adChar, adParamInput, 10, "20.01.2002")
cmd.Parameters.Append prm1
Set prm1 = cmd.CreateParameter("@enddate", adChar, adParamInput, 10, "20.08.2002")
cmd.Parameters.Append prm1
Set prm1 = cmd.CreateParameter("@cn_a_an", adChar, adParamInput, 6, "004%")
cmd.Parameters.Append prm1

cn.ConnectionString = "Provider=SQLOLEDB.1;Password=;User ID=sa;Database=" + DataBaseMy
cn.Open
Set cmd.ActiveConnection = cn
Set rs = cmd.Execute
...
Рейтинг: 0 / 0
22.08.2002, 19:52:52
    #32045353
Maxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать параметры в ХП через ADO
1. После set rs = cmd.Execute
rs.Open
2.При вызове параметры должны идти в томже порядке ,что и в описании процедуры
3. "@cn_reg_user" ели ето параметр так называеться ну например
@cn_reg_user nvarchar(4)
то вызывать из Бейсика нужно без @.т.е. не так
Код: plaintext
Set prm1 = cmd.CreateParameter( "@cn_reg_user" , adVarChar, adParamInput,  4 ,  "GVI" ) 

а вот так
Код: plaintext
Set prm1 = cmd.CreateParameter( "cn_reg_user" , adVarChar, adParamInput,  4 ,  "GVI" ) 

4.Set rs = New ADODB.Recordset - убери нафиг,ты делаеш new когда причваиваеш рекорсед,если он у тебя вообще возвращаеться:)
Если не поможет - текст процедуры в студию
Удачи
ЗЫ
У тебя нет ретурн параметра в процедуре,а то я что-то не увидел его при вызове
...
Рейтинг: 0 / 0
22.08.2002, 20:07:23
    #32045355
noneme
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать параметры в ХП через ADO
Maxx всё сделал как ты сказал :неполучается, а может...
такой вопрос, если в ХП последним идёт селект с кучей полей , разве все эти поля нужно в VB описывть как выходные?????
...
Рейтинг: 0 / 0
22.08.2002, 20:24:11
    #32045360
Maxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать параметры в ХП через ADO
Текст в студию ,специальнло сейчас проверил вот проца
Код: plaintext
1.
2.
3.
4.
ALTER  procedure A
as 
begin
 select top  10  * from Razdel 
end

вот вызов
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Dim fso
  Dim a
  Dim str As String
  str =  ""
  Set cmd = New ADODB.Command
  Set cmd.ActiveConnection = CurrentProject.Connection
  Set fso = CreateObject(" Scripting.FileSystemObject ")
  Set a = fso.CreateTextFile(" T:\TEST\firma.txt ", True, True)
  cmd.CommandType = adCmdStoredProc
  
  cmd.CommandText = " a "
  Set rst = cmd.Execute
  If Not rst.EOF Then rst.MoveFirst
    
     While Not rst.EOF
       str = " insert into firma(id,name)values( " & " '" & rst.Fields(0).Value & "' " & " , " & rst.Fields(1 ).Value & ") "
       a.WriteLine str
       str = "  "

       rst.MoveNext
     Wend
     rst.Close
     a.Close
     MsgBox " Hello File"
     Set cmd = Nothing
     Set fso = Nothing
     Set rst = Nothing

В итоге нормально записываеться файл
...
Рейтинг: 0 / 0
23.08.2002, 10:19:03
    #32045418
Maxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать параметры в ХП через ADO
noneme ну как дела,заработало или нет?
...
Рейтинг: 0 / 0
23.08.2002, 10:22:41
    #32045420
ziktuw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать параметры в ХП через ADO
У него, наверно, просто SET NOCOUNT ON отсутствует в процедуре
...
Рейтинг: 0 / 0
23.08.2002, 11:16:55
    #32045445
akuz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать параметры в ХП через ADO
Вот-вот, с этого и надо было начинать!

Люди! А нафига вы трахаетесь с описанием параметров на клиенте, которые к тому же могут поменяться, вместо того чтобы вызвать cmd.Parameters.Refresh???

Те копейки которые вы сэкономите на этой операции всё равно пойдут не в ваш карман.
...
Рейтинг: 0 / 0
23.08.2002, 11:20:08
    #32045447
Maxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать параметры в ХП через ADO
А ето дело вкуса,да и самому потом понятней :))
...
Рейтинг: 0 / 0
23.08.2002, 11:26:53
    #32045450
akuz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать параметры в ХП через ADO
Дык, ведь всегда можно на просиду глянуть.

А помоему это извращенство!
Тем более предлагать такое новичку!
...
Рейтинг: 0 / 0
23.08.2002, 11:30:47
    #32045453
Maxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать параметры в ХП через ADO
Блин , ну привык я так .....,ну неужели ето тема для обсуждения:))))
А то мы с тобой счас очнь быстренько такими темпами привратим етот топик в обсуждение кому как нравится:)))
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как передать параметры в ХП через ADO / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]