powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как вызвать хранимку из Excel
6 сообщений из 6, страница 1 из 1
Как вызвать хранимку из Excel
    #34161864
Kimmy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что то не выходит
...
Рейтинг: 0 / 0
Как вызвать хранимку из Excel
    #34163287
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как вы вызываете?

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
Как вызвать хранимку из Excel
    #34164110
Kimmy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
'===================================================================
' Функция вызова хранимки с передачей параметров
'===================================================================
Function GetRecordSet(ProcedureName, ProcParArr)
Dim Prm ', RS
Dim i
Dim Par
Dim cn As ADODB.Connection
Dim Cmd As ADODB.Command
Dim rs As ADODB.Recordset
Dim db As ADODB.Connection
Set cn = CreateObject("ADODB.Connection")



cn.Open "Driver={SQL Server}; Server=MyServer; UID=" + stringLogin + "; PWD=" + stringPWD + ";Database=MyDatabase"



Set Cmd = CreateObject("ADODB.Command")
Set rs = CreateObject("ADODB.Recordset")
Set Cmd.ActiveConnection = cn

Cmd.CommandType = 4
Cmd.CommandText = "ap_rep_balance"
Dim iParam
Set iParam = Cmd.CreateParameter("@plan", 3, 1)
iParam.Value = 70
Cmd.Parameters.Append iParam

Set iParam = Cmd.CreateParameter("@crc", 3, 1)
iParam.Value = 0
Cmd.Parameters.Append iParam

Set iParam = Cmd.CreateParameter("@Start", 7, 1)
iParam.Value = DateSt
Cmd.Parameters.Append iParam

Set iParam = Cmd.CreateParameter("@End", 7, 1)
iParam.Value = DateEnd
Cmd.Parameters.Append iParam

Set iParam = Cmd.CreateParameter("@mcid", 3, 1)
iParam.Value = 1
Cmd.Parameters.Append iParam


rs.Open Cmd, , 3

MsgBox (CStr(rs.RecordCount))
Set Cmd = Nothing
End Function

Ругается :-( на Rs.Open

Run-time error ' -2147217887 (80040e21) ';
[Microsoft][ODBC SQL Server Driver] Optional feature not implemented
...
Рейтинг: 0 / 0
Как вызвать хранимку из Excel
    #34164245
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема скорее всего в том, что неправильно преобразуются параметры
Это часто связанно с параметрами типа "ДАТА"

Попробуйте их передавать как строку вида YYYYMMDD


I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
Как вызвать хранимку из Excel
    #34165256
Kimmy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже если запустить хранимку без параметров "ap_users_load",
rs.recordcount = -1 , rs.state = 1 (открыт)
хотя в SQL Server Managemernt studio sql2005
запрос возвращает много строк
если поставить cn.Provider = "sqloledb", - то же самое
rs.recordcount = -1 , rs.state = 1 (открыт)
...
Рейтинг: 0 / 0
Как вызвать хранимку из Excel
    #34165602
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никогда не используй ADODB.RecordSet.RecordCount, он почти всегда врет. Читай внимательно документацию на ADO, там все объяснено.

Во вторых, не указывай тип замка открывая рекордсет. Скорее всего твой драйвер просто не умеет делать оптимистичные замки. По умолчанию оно откроет с блокирующим замком.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как вызвать хранимку из Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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