ADOQuery 在 单独的 unit 中不起作用?

clt 发布于 2013/03/05 13:41
阅读 106
收藏 0

一个 button 的 click 中对 datamodule 中的 adoquery 操作后,结果可以在 dbgrid 中看到, 可是将 这段代码挪到 一个 独立的 unit 中,再调的时候在 dbgrid 中就看不到结果.

form

procedure MainForm.Button1Click(Sender: TObject);
var paramdao : sys_param_unit.TSysParamDao;
begin
   paramdao :=  sys_param_unit.TSysParamDao.create;
   paramdao.listAll;
end;

sys_param_unit

implementation
  constructor TSysParamDao.create;
  begin
    //datamodule := TDataModule1.Create(nil);
  end;


  procedure TSysParamDao.listAll;
  begin
    with datamodule.DataModule1.ADOQuery1 do
    begin
    Close;
    SQL.Clear;
    SQL.Add('select * from sys_param ');
    Active := True;
    Open;
    end;
  end;

加载中
0
天闲
天闲

...delphi 啊

呵呵!这样uses  下加ADODB

function GetUerID(guid:string):String; 
var
  query:TADOQuery;
begin
  query:=TADOQuery.Create(nil);
  query.Close;

.....

end;

0
clt
clt

引用来自“天闲”的答案

...delphi 啊

呵呵!这样uses  下加ADODB

function GetUerID(guid:string):String; 
var
  query:TADOQuery;
begin
  query:=TADOQuery.Create(nil);
  query.Close;

.....

end;

这是新建一个 ADOQuery 吧,新建了还要设置 connectionString ? 能用 datamodule 中已经建好的 ADOQuery 么?

procedure TSysParamDao.listAll;
  var
    query : TADOQuery;
  begin
    query := TADOQuery.Create(nil);
    with query do
    begin
    Close;
    SQL.Clear;
    SQL.Add('select * from sys_param ');
    Active := True;
    Open;
    end;
  end;

0
天闲
天闲

use 你的datamodule 就直接能用 datamodule的 jquyer吧!

你这里 var的adoquery 

可以设置datamodule的TADOConnection。

例如:

query:=TADOQuery.Create(nil);
  query.Close;
  query.Connection:=Data.ADOSJDB;

返回顶部
顶部