delphi adoconnection对象传递到dll中的窗体中的adoquery

showForm(adoC:TAdoConnection);varbegintryfrmDLL:=TfrmDLL.Create(Application);frmDLL.A... showForm(adoC:TAdoConnection);
var
begin
try
frmDLL := TfrmDLL.Create (Application);
frmDLL.ADOQuery1.Connection :=adoC;
frmDLL.showmodal;
finally
FreeAndNil(frmDLL);
end;
end;
可以正常连接但在关闭窗口后出现内存地址错误资源也基本释放了,请指教。如果有更好的方法还请告知一下,谢谢
展开
 我来答
dds3614500
2010-01-12
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
procedure DoTest(H: THandle; { 获得调用者的句柄 }
AConn: TADOConnection;{ 获得调用者的数据库连接 }
S: string; { 获得一些文本信息 }
N: Integer); { 获得一些数值信息 }
cdecl; { 指定调用协议 }

procedure DoTest(H: THandle; AConn: TADOConnection; S: string; N: Integer);
begin
Application.Handle := H; { 将过程的句柄赋值为调用者的句柄 }
{ 上面语句的作用在于, DLL的句柄和调用者的句柄相同,在任务栏中就不会各自出现一个任务标题了。 }

try{ 创建窗体 }
frmDLL := TfrmDLL.Create (application);
// Memo1.Lines.Append('成功调用'); { 显示一行信息 }
frmDLL.ADOQuery1.Connection:= AConn; { 获得数据库连接的实例 }
// Memo1.Lines.Append(
// ADOConnection1.ConnectionString +
// ' - ' + S + ' - ' + IntToStr(N)); { 根据得到的参数显示另一行信息 }
frmDLL.ShowModal; { 模式化显示窗体 }
finally
frmDLL.Free; { 调用结束时销毁窗口 }
end;
end;
苦守无奈
2010-01-10 · TA获得超过608个赞
知道小有建树答主
回答量:725
采纳率:41%
帮助的人:139万
展开全部
frmDLL := TfrmDLL.Create (self);试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式