powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Тип Variant в качестве параметра. Как правильно задать?
4 сообщений из 4, страница 1 из 1
Тип Variant в качестве параметра. Как правильно задать?
    #32640752
BuilderWithDelphi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть в Билдере 4 невизуальный объект TOraclePackage - компонент для прямого доступа к СУБД Oracle, у которого есть метод
void __fastcall CallProcedure(const AnsiString ProcedureName, const Variant * Parameters, const int Parameters_Size);
Подскажите как правильно туда забрасывать параметры, пытался так, не получилось
Код: plaintext
1.
Variant V(OPENARRAY(int,( 555 )),varInteger);
...
Рейтинг: 0 / 0
Тип Variant в качестве параметра. Как правильно задать?
    #32640859
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если в хелп глянуть ?
хотя там почти тоже самое ..
Код: plaintext
1.
2.
3.
 Variant a, b;
 a = VarArrayCreate(OPENARRAY(int, ( 0 ,  9 )), varInteger);
 b = VarArrayCreate(OPENARRAY(int, ( 1 ,  3 ,  0 ,  9 )), varInteger);

можно попробовать так
Код: plaintext
1.
2.
3.
4.
5.
  Variant vSmallint(short( 3 ));
  Variant vInteger( 4 );
  Variant vSingle(float( 5 ));
  Variant vDouble(double( 6 ));
  Variant vCurrency(Currency( 7 ));

да а какую ошибку он тебе пишет ?



 ш
(';')
(V),(V),,
Код: plaintext
 JS 
...
Рейтинг: 0 / 0
Тип Variant в качестве параметра. Как правильно задать?
    #32641854
BuilderWithDelphi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot JibSkeart]а если в хелп глянуть ?
хотя там почти тоже самое ..
Код: plaintext
1.
2.
3.
 Variant a, b;
 a = VarArrayCreate(OPENARRAY(int, ( 0 ,  9 )), varInteger);
 b = VarArrayCreate(OPENARRAY(int, ( 1 ,  3 ,  0 ,  9 )), varInteger);

можно попробовать так
Код: plaintext
1.
2.
3.
4.
5.
  Variant vSmallint(short( 3 ));
  Variant vInteger( 4 );
  Variant vSingle(float( 5 ));
  Variant vDouble(double( 6 ));
  Variant vCurrency(Currency( 7 ));

да а какую ошибку он тебе пишет ?


В первом случае давал ошибку: Error creating variant array
Попробовал так:

Код: plaintext
1.
2.
Variant vInteger( 4 );
D->OPA->CallProcedure("set_emplsession",&vInteger,sizeof(vInteger));
Получил Access violation at... in module oleaut32.dll. Read address of ...
...
Рейтинг: 0 / 0
Тип Variant в качестве параметра. Как правильно задать?
    #32641888
Shr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если ты про DOA:
В Help-е написано так:
procedure CallProcedure(const ProcedureName: string; const Parameters: array of Variant);

т.е. параметром д.б. не вариантный массив, а массив вариантов.
Т.е. по Си-шному (если я еще синтаксис не забыл :)

Код: plaintext
1.
2.
3.
4.
variant Arr[ 10 ];
Arr[ 0 ] = ...;
...
Arr[ 9 ] = ...;
CallProcedure("ProcName", Arr);
а вот что с многомерным массивом делать - это исходники читать надо и разбираться, чего именно они хотят в качестве параметров.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Тип Variant в качестве параметра. Как правильно задать?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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