首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

请问一个有关问题

2012-02-17 
请教一个问题functionOpenSQL(Str:String):TDataSetstdcallvarADOset:TADOQUerybeginADOset:TADOQuery

请教一个问题
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.

热点排行