powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Помогите с возвратом параметров из хранимой процедуры
4 сообщений из 4, страница 1 из 1
Помогите с возвратом параметров из хранимой процедуры
    #34126986
Sotnikovsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, проблема следующая , пытаюсь вызвать ХП с помощью ADODB.Command но получаю ошибку
вот мой код :

Код: 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.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
Sub rec_GKPZ(con As ADODB.Connection)
 Dim T_start As String
 Dim T_end As String
 Dim A_start As String
 Dim A_end As String
 Dim rst As ADODB.Recordset
 Dim MSP As MSProject.Application
 Const AllStation = "Все станции"

 Dim ErrCode As Integer
 Dim msg As String
 Dim msgType As Integer

 Dim cmd As ADODB.Command
 Dim cpr As ADODB.Parameter
 
  Set MSP = New MSProject.Application
 UsernmPrServ = MSP.UserName

Set cmd = New ADODB.Command
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "repGKPZ"

Set cpr = cmd.CreateParameter("@login_name", adVarChar, adParamInput, [ 255 ], UsernmPrServ)
cmd.Parameters.Append cpr
Set cpr = cmd.CreateParameter("@Msg", adVarChar, adParamInputOutput, [ 255 ], msg)
cmd.Parameters.Append cpr
Set cpr = cmd.CreateParameter("@MsgType", adInteger, adParamInputOutput, [ 10 ], msgType)
cmd.Parameters.Append cpr
Set cpr = cmd.CreateParameter("@ErrCode", adInteger, adParamInputOutput, [ 10 ], ErrCode)
cmd.Parameters.Append cpr



Set rst = New ADODB.Recordset

 With frm1
   If CB_Podrazd.Text = "Все станции" Then
   sqlstring = sqlstring & "NULL ,"
   Set cpr = cmd.CreateParameter("@station", adVarChar, adParamInput, [ 20 ])
cmd.Parameters.Append cpr
   Else
   office = CB_Podrazd.Text
   sqlstring = sqlstring & " '" & office & "', "
   Set cpr = cmd.CreateParameter("@station", adVarChar, adParamInput, [ 20 ], CB_Podrazd.Text)
    cmd.Parameters.Append cpr
   End If
   Checkdate1 = False
   Checkdate2 = False
   If (Not DTP_R_New_click) And (Not DTP_R_New_Sel) Then
     sqlstring = sqlstring & "NULL ,"
     Set cpr = cmd.CreateParameter("@tender_start", adDate, adParamInput)
cmd.Parameters.Append cpr
   Else
     T_start = Format$(DTP_Razmesh_new.Value, "yyyy-mm-dd")
     Set cpr = cmd.CreateParameter("@tender_start", adDate adParamInput, [], T_start)
    cmd.Parameters.Append cpr
   End If

   If (Not DTP_R_end_click) And (Not DTP_R_End_Sel) Then
     Set cpr = cmd.CreateParameter("@tender_end", adDate, adParamInput)
cmd.Parameters.Append cpr
   Else
     T_end = Format$(DTP_Razmesh_end.Value, "yyyy-mm-dd")
     Set cpr = cmd.CreateParameter("@tender_start", adDate, adParamInput, [], T_end)
    cmd.Parameters.Append cpr
   End If

   
   If (Not DTP_A_New_Click) And (Not DTP_A_New_Sel) Then
    Set cpr = cmd.CreateParameter("@agreement_start", adDate, adParamInputOutput)
cmd.Parameters.Append cpr
   Else
     A_start = Format$(DTP_DateDogov_new.Value, "yyyy-mm-dd")
     Set cpr = cmd.CreateParameter("@agreement_start", adDate, adParamInput, [], A_start)
cmd.Parameters.Append cpr
   End If

   If (Not DTP_A_End_click) And (Not DTP_A_End_Sel) Then
   Set cpr = cmd.CreateParameter("@agreement_start", adDate, adParamInputOutput)
cmd.Parameters.Append cpr
   Else
     A_end = Format$(DTP_DateDogov_end.Value, "yyyy-mm-dd")
     Set cpr = cmd.CreateParameter("@agreement_start", adDate, adParamInput, [], A_end)
cmd.Parameters.Append cpr
   End If
 End With

 cmd.ActiveConnection = con
 Set rst = cmd.Execute

If office <> "Все станции" Then
Proc_one_station rst, con
Else
Proc_All_Station rst, con, cmd
End If
frm1.Hide
exithere:
Exit Sub
NOOFFICE:
MsgBox (NO_Office)
Exit Sub
NODATE:
MsgBox No_date
Exit Sub
OLDDATE:
MsgBox Old_date
Exit Sub
End Sub

За ранее благодарен за любую помощь!
...
Рейтинг: 0 / 0
Помогите с возвратом параметров из хранимой процедуры
    #34128652
Sotnikovsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, ну если хоть кто нибудь сталкивался с такой ошибкой, то огромная просьба подсказать хоть с чем она связана, мой поиск результатов не дал.
...
Рейтинг: 0 / 0
Помогите с возвратом параметров из хранимой процедуры
    #34128792
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во первых, подними команду cmd.ActiveConnection = con в начало процедуру, поставь ее сразу после Set cmd = New ADODB.Command . Потому что некоторые драйвера имеют свойство очищать все настройки ADODB.Command при смене коннекта.
Во вторых, очень подозрительна ветвистая процедура добавления параметров, никогда больше так не делай. Велика вероятность что где-нибудь ошибешься и сделаешь разный набор параметров. Лучше сначала создай все параметры, потом уже присваивай им значения по условиям. Собственно говоря для этого параметры и придумали.
В третьих, некоторые БД (или вернее стандартные интерфейсы к ним) не любят Input и InputOutput или Output параметры вперемешку. Делая ХП старайся группировать сначала все In, потом все Out параметры.

Если ничего из этого не поможет, то значит дело в драйвере. Ну не поддерживает он работу с InputOutput параметрами вообще значит. Возьми другой драйвер.
...
Рейтинг: 0 / 0
Помогите с возвратом параметров из хранимой процедуры
    #34128950
Sotnikovsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо , буду пробовать.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Помогите с возвратом параметров из хранимой процедуры
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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