powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Не передаются параметры в хранимую процедуру
9 сообщений из 9, страница 1 из 1
Не передаются параметры в хранимую процедуру
    #37734680
mikekar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Устанавливаем connect к mssql и пытаемся выполнить процедуру из excel
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Dim cmd As ADODB.Command
Set cmd = CreateObject("ADODB.Command")
cmd.ActiveConnection = cn
cmd.CommandText = "[rrr].[myproc]"
cmd.CommandType = adCmdStoredProc

'cmd.NamedParameters = False
cmd.Parameters.Refresh
cmd.Parameters(1) = 1
cmd.Parameters(2) = CDbl(Format(Date - 3, "YYYYMMDD"))
cmd.Execute


ошибка возникает на cmd.execute
Истекло время ожидания.
При этом cmd.CommandText всегда такого вида "{ ? = call [rrr].[myproc](?, ?) }". Такое ощущение, что параметры в процедуру не передаются.
Подскажите, где ошибка?
...
Рейтинг: 0 / 0
Не передаются параметры в хранимую процедуру
    #37734744
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Передаются.
Таймаут, это таймаут - это процедура значит тормозит дольше таймаута
cmd.CommandTimeout=600

ЗЫ: а зачем дату-то с таким извращением передавать?
...
Рейтинг: 0 / 0
Не передаются параметры в хранимую процедуру
    #37734755
mikekar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) номмально ли, что commandtext не меняется?
2) таймаут ставили и 2000. Может ли быть так, что дбашники как-то отдельно лимитируют таймаут при разных подключениях (типа через excel например 10, а через studio например 1000)?
...
Рейтинг: 0 / 0
Не передаются параметры в хранимую процедуру
    #37734763
mikekar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) номмально ли, что commandtext не меняется?
2) таймаут ставили и 2000. Может ли быть так, что дбашники как-то отдельно лимитируют таймаут при разных подключениях (типа через excel например 10, а через studio например 1000)?
...
Рейтинг: 0 / 0
Не передаются параметры в хранимую процедуру
    #37734765
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) нормально. Параметры передаются отдельно.
2) Сделай простую процедуру типа SELECT @MyParameter и проверь на ней
...
Рейтинг: 0 / 0
Не передаются параметры в хранимую процедуру
    #37734851
ElenHim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timeout ещё вроде на connection можно задать
Если указать 0, должен до победного ждать
...
Рейтинг: 0 / 0
Не передаются параметры в хранимую процедуру
    #37735173
кладовщик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro...

ЗЫ: а зачем дату-то с таким извращением передавать?
А как правильно дату передавать из VBA в MS SQL? Я из представления для регулярных отчетов задаю ретроспективу в днях от текущей даты и возвращаю рекордсет на лист экселя:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Connection.Open ConnectionString:=Cnct
SqlString = "SELECT * FROM dbo.MyView WHERE [Date Condition]  "
SqlString = SqlString & " BETWEEN "
Dim how_many_days_ago As Byte 'для отчетов задается число дней ретроспективы
how_many_days_ago = 3
SqlString = SqlString & "CONVERT(DATETIME, CONVERT(VARCHAR,DATEADD(day, -" & how_many_days_ago & ", GetDate()) , 112)) "
SqlString = SqlString & "AND CONVERT(DATETIME, CONVERT(VARCHAR,GetDate(),112))"


Как правильней?
-----
Не люблю Progress OpenEdge.
...
Рейтинг: 0 / 0
Не передаются параметры в хранимую процедуру
    #37735215
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если процедуре параметр типа datetime, то ее можно передавать как есть:
Код: vbnet
1.
cmd.Parameters(2) = Date - 3
...
Рейтинг: 0 / 0
Не передаются параметры в хранимую процедуру
    #37735217
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProЕсли процедуре параметр типа datetime, то ее можно передавать как есть:в этом и заключается удобство работы с Command - не надо преобразовывать все на стороне клиента, думать о задвоении кавычек, формате даты и т.п.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Не передаются параметры в хранимую процедуру
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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