读书人

请问一个有关问题

发布时间: 2012-02-17 17:50:42 作者: rapoo

请教一个问题
function OpenSQL(Str :String):TDataSet;stdcall;
var
ADOset :TADOQUery;
begin
ADOset :=TADOQuery.Create(Nil);
ADOset.Connection :=DM.ADOConn;
with ADOset do
begin
Close;
SQL.Clear;
SQL.Add(Str);
Open;
end;
ADOset.Active :=True;
Result :=ADOset;
end;

这个是在DLL中写的一个函数,我Exe文件中调试是通过的,但是编译成了DLL后就是报错,实在是不知道错那里了?各位帮我看看吧。。。谢谢了。。


[解决办法]
我想你那个程序出错应该是DM这个单元,你的DM没有初始化!
给你个正解的DLL单元:先自己好好看看吧!
library DBTest;

uses
SysUtils,
Classes,
DB,
ADODB,
uDB in 'uDB.pas ' {DM: TDataModule};

{$R *.res}

function OpenSQL(Str :String):TDataSet;stdcall;
var
ADOset :TADOQuery;
DM: TDM;
begin
DM := TDM.Create(nil);
ADOset :=TADOQuery.Create(Nil);
ADOset.Connection := DM.ADOCon;
with ADOset do
begin
Close;
SQL.Clear;
SQL.Add(Str);
Open;
end;
Result :=ADOset;
end;

exports
OpenSQL;
begin
end.

读书人网 >.NET

热点推荐