Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / передача массива из ХП / 10 сообщений из 10, страница 1 из 1
06.07.2005, 14:33:14
    #33152310
lmeer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
передача массива из ХП
ADO, Oracle, Visual Basic

как вернуть массив из ХП?
как только пишу тип параметра adArray Or adInteger
выдает ошибку.

в чем трабл?
благодарен за любые ответы.
...
Рейтинг: 0 / 0
06.07.2005, 16:30:58
    #33152697
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
передача массива из ХП
А ты не пиши тип параметра. Сделай так:
Код: plaintext
1.
2.
Set cmd.ActiveConnection = cn
cmd.Parameters.Refresh
и обращайся к ним по именам.
...
Рейтинг: 0 / 0
06.07.2005, 16:47:27
    #33152779
lmeer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
передача массива из ХП
если не указывать тип параметра

Dim pParam(1 To 3) As Long
CPwFunc.Parameters.Append CPwFunc.CreateParameter("pVPNT", , adParamInput, 12, pParam)

то VB говорит, что неправильно определен объект Parametr (Ran-time error 3708)
...
Рейтинг: 0 / 0
06.07.2005, 17:04:52
    #33152854
lmeer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
передача массива из ХП
да, кстати вот исходный код
'''''''''''''''''''''''''''''''
Dim CPwFunc As ADODB.Command, n1 As Long, pParam(1 To 3) As Long

CPwFunc.Parameters.Append CPwFunc.CreateParameter("pVPNT", adArray + adInteger, adParamInput, 12, pParam)
CPwFunc.Parameters.Append CPwFunc.CreateParameter("pID_RT_V", adInteger, adParamInputOutput, 4, n1)

Call ExeQSQLFunc
'''''''''''''''''''''''''''''''

вызывает очень странную ошибку:
Warning: OraOLEDB 80040064: v
...
Рейтинг: 0 / 0
07.07.2005, 09:52:47
    #33153619
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
передача массива из ХП
Я имел ввиду вообще не делай Append. После cmd.Parameters.Refresh все параметры будут добавлены сами собой, тебе нужно будет только проставить значения.
...
Рейтинг: 0 / 0
07.07.2005, 09:59:51
    #33153632
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
передача массива из ХП
И не забудь CommandType = adCmdStoredProc
...
Рейтинг: 0 / 0
07.07.2005, 12:16:45
    #33154180
lmeer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
передача массива из ХП
Большое Спасибо, Antonariy.
в понедельник обязательно попробую и напишу о результатах.
если я правильно понял, то после Refresh, VB смотрит ХП и сам определяет какие у нее параметры и добавляет их?
Если это так, то все должно быть good.
...
Рейтинг: 0 / 0
07.07.2005, 14:33:28
    #33154688
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
передача массива из ХП
Именно так.
...
Рейтинг: 0 / 0
11.07.2005, 15:20:51
    #33159578
lmeer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
передача массива из ХП
Refresh не работает. Пишет, что "поставщику не удалось выдать сведения о параметрах".
Я где-то прочитал, что Oracle действительно не выдает данные о параметрах.

когда просто делаю
SP.Parameters.Append SP.CreateParameter("pArray", adDate + adArray, adParamOutput)
SP.Execute

VB говорит, "ошибочно число или типы аргументов при обращении к..."

сама ХП выглядит так:
Procedure Test_Date_Array(pArray out P_TYPES.Date_Table_Type)
is
begin
for i in 1 .. 3 loop
pArray(i) := trunc(sysdate)+i;
end loop;
end;
...
Рейтинг: 0 / 0
11.07.2005, 16:23:37
    #33159768
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
передача массива из ХП
Больше ничем помочь не могу. Поспрашивай на форумк Оракла.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / передача массива из ХП / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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