COM+中返回_Connection的问题,求助!
我按如下方式建了一个COM+组件
New->Activex->Transactional Object
并实现了如下一个函数
function TConnCOM.GetConn: _Connection;
begin
try
fConn := TADOConnection.Create(nil);
with fConn do
begin
ConnectionString := 'Provider=SQLOLEDB.1;'
+'Password=pas;'
+'Persist Security Info=True;'
+'User ID=test;'
+'Initial Catalog=master;'
+'Data Source=10.0.3.202';
LoginPrompt := False;
end;
Result := _Connection(fConn.ConnectionObject);
end;
现在的问题是
我在前台怎么将这个_Connection传给一个TADOQUERY?
我的做法是这样的:
procedure TForm1.Button1Click(Sender: TObject);
var
A : IConnCOM;
begin
A := CoConnCOM.CreateRemote('random');
Showmessage(A.GetConn.ConnectionString); //这个正常
AQ.Connection.ConnectionObject := _Connection(A.GetConn); //这样用出错
AQ.Connection.ConnectionObject := Connection(A.GetConn); //这样用也出错
With AQ do
begin
Close;
SQL.Text := 'Select Count(*) as iCount From syscolumns';
Open;
ShowMessage(FieldByName('iCount').AsString);
end;
end;
错误提示如下:
Access violation at address 0047C43D in module 'APP.exe'. Read of address 00000000