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

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

в чем трабл?
благодарен за любые ответы.
...
Рейтинг: 0 / 0
передача массива из ХП
    #33152697
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты не пиши тип параметра. Сделай так:
Код: plaintext
1.
2.
Set cmd.ActiveConnection = cn
cmd.Parameters.Refresh
и обращайся к ним по именам.
...
Рейтинг: 0 / 0
передача массива из ХП
    #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
передача массива из ХП
    #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
передача массива из ХП
    #33153619
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я имел ввиду вообще не делай Append. После cmd.Parameters.Refresh все параметры будут добавлены сами собой, тебе нужно будет только проставить значения.
...
Рейтинг: 0 / 0
передача массива из ХП
    #33153632
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И не забудь CommandType = adCmdStoredProc
...
Рейтинг: 0 / 0
передача массива из ХП
    #33154180
lmeer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое Спасибо, Antonariy.
в понедельник обязательно попробую и напишу о результатах.
если я правильно понял, то после Refresh, VB смотрит ХП и сам определяет какие у нее параметры и добавляет их?
Если это так, то все должно быть good.
...
Рейтинг: 0 / 0
передача массива из ХП
    #33154688
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Именно так.
...
Рейтинг: 0 / 0
передача массива из ХП
    #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
передача массива из ХП
    #33159768
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Больше ничем помочь не могу. Поспрашивай на форумк Оракла.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / передача массива из ХП
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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