Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как вызвать хранимку из Excel / 6 сообщений из 6, страница 1 из 1
28.11.2006, 17:47:45
    #34161864
Kimmy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вызвать хранимку из Excel
Что то не выходит
...
Рейтинг: 0 / 0
29.11.2006, 11:24:11
    #34163287
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вызвать хранимку из Excel
а как вы вызываете?

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
29.11.2006, 14:14:40
    #34164110
Kimmy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вызвать хранимку из Excel
'===================================================================
' Функция вызова хранимки с передачей параметров
'===================================================================
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
29.11.2006, 14:46:07
    #34164245
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вызвать хранимку из Excel
Проблема скорее всего в том, что неправильно преобразуются параметры
Это часто связанно с параметрами типа "ДАТА"

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


I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
29.11.2006, 18:32:54
    #34165256
Kimmy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вызвать хранимку из Excel
Даже если запустить хранимку без параметров "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
29.11.2006, 22:27:37
    #34165602
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вызвать хранимку из Excel
Никогда не используй ADODB.RecordSet.RecordCount, он почти всегда врет. Читай внимательно документацию на ADO, там все объяснено.

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


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