COM+中返回_Connection的问题,求助!

wozhuchuanwei wozhuchuanwei 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我按如下方式建了一个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
...全文

相关推荐

评论 15
收藏 已收藏
分享
返回顶部