Как Connection:= OleVariant ?

Myster

Доброго дня всемподскажет кто нибудь как StoredProc.Connection передать значение через переменную OleVariant?procedure XXX(NewConnection: OleVariant); var StoredProc: TADOStoredProc;begin StoredProc:=TADOStoredProc.Create(nil); StoredProc.Connection:= NewConnection; - ОШИБКА
7 ответов

Myster

Собственно чем тип TADOConnaction не устраивает?Попробуй передавать строку подключения если передать TADOConnaction не получается...
<b>procedure</b> Proc1(ConnStr: <b>string</b>);
<b>var</b> StProc: TADOStoredProc;
...
<b>begin</b>
...
 StProc.ConnectionString := ConnStr
...
<b>end</b>;


Myster

Доброго дня всемподскажет кто нибудь как StoredProc.Connection передать значение через переменную OleVariant?
Сомнительный механизм. А зачем это понадобилось?


Myster

Сомнительный механизм. А зачем это понадобилось?Posted via ActualForum NNTP Server 1.3
Для передачи Connection в метод COM-обьектаесли бы можно было определить тип входной переменной как TADOConnection, проблем бы не было, но нельзяили как тут можно сделать по другому?


Myster

Для передачи Connection в метод COM-обьектаесли бы можно было определить тип входной переменной как TADOConnection, проблем бы не было, но нельзяили как тут можно сделать по другому?
Без дополнительного более подробного описания проблемыскорее всего подойдет способ, о котором уже написалКуликов Алексей выше. Или же:
<b>procedure</b> Proc1(ConnStr: <b>string</b>);
<b>var</b>
 TmpConn: TADOConnection;
 StProc: TADOStoredProc;
...
<b>begin</b>
...
 TmpConn.ConnectionString := ConnStr;
 StProc.Connection := TmpConn;
...
<b>end</b>;
ЗЫ Попахивает ошибкой проектирования, но это мое ИМХО.


Myster

Если надо непременно через OleVariant, то так:
<b>procedure</b> XXX(NewConnection: OleVariant);
<b>var</b> StoredProc: TADOStoredProc;
 Conn: TADOConnection;
<b>begin</b>
 StoredProc:=TADOStoredProc.Create(<b>nil</b>);
 Conn:=TADOConnection.Create(<b>nil</b>);
 Conn.ConnectionObject:=IUnknown(NewConnection) <b>as</b> _Connection;
 StoredProc.Connection:=Conn;
...
Ну и в качестве параметра, естественно, передавать не ADOConnection, а ADOConnection.ConnectionObject


Myster

можно наоборот - сам Connection держать в COM, а ОН выдаёт набор записей "из себя" по запросу на стринг SQLhttp://www.sql.ru/forum/actualthread.aspx?tid=153060&pg=1&hl=fivaradocommand�______________________________________________Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!


Myster

эта ссылка конкретнееhttp://www.sql.ru/forum/actualthread.aspx?tid=153060&pg=1&hl=fivaradocommand?#1257197______________________________________________Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!