把 procedure asdf()写在Query1: TADOQuery; 的后面,在把procedure asdf();改成procedure TDataModule2.asdf(); 或者procedure asdf(); var f:string; begin with DataModule2 do query1:=tadoquery.create; query1.Active:=true; query1.SQL.Clear; query1.SQL.Add('select * from 表1'); query1.Active:=true; f:=query1.Fields[1].text; showmessage(f); Query1.Free; end; end;
欧,不好意思,忘写begin了 with DataModule2 do begin query1:=tadoquery.create; query1.Active:=true; query1.SQL.Clear; query1.SQL.Add('select * from 表1'); query1.Active:=true; f:=query1.Fields[1].text; showmessage(f); Query1.Free; end;
xzgyb(回首往事,不堪回首): 还是不行!!!! query1:=tadoquery.create这一句通不过啊,惨! 出错信息是“NOT ENOUGH ACTUAL PARAMETERS” 麻烦你在机子上调试通过再告诉我,我愿奉上50分!!!
欧,不好意思,我没用过ADO,我也没细看 我试了一下,你看这样行不行 with DataModule2 do begin query1:=tadoquery.create(DataModule2); try Query1.connectionstring :='Provider=MSDASQL.1;Persist Security Info=False;Data Source=为你的数据源名'; query1.SQL.Add('select * from 表1'); query1.Active:=true; f:=query1.Fields[1].text; showmessage(f); finally Query1.Free; end; end;
老鬼同志救我!!请帮我调试调试!!连接字符串我测试过是成功的,但是运行就是不行,why?50分unit Unit2; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Db, ADODB; type TDataModule2 = class(TDataModule) Query1: TADOQuery; procedure asdf(); end; var DataModule2: TDataModule2;implementation procedure TDataModule2.asdf(); var f:string; begin query1:=tadoquery.create(DataModule2); query1.ConnectionString:='Provider=MSDASQL.1;Password=" ";Persist Security Info=True;User ID=sa;Data Source=英德款项'; query1.Active:=true; query1.SQL.Clear; query1.SQL.Add('select * from 表1'); //query1.Active:=true; f:=query1.Fields[0].text; showmessage(f); end; {$R *.DFM}end.
的后面,在把procedure asdf();改成procedure TDataModule2.asdf();
或者procedure asdf();
var f:string;
begin
with DataModule2 do
query1:=tadoquery.create;
query1.Active:=true;
query1.SQL.Clear;
query1.SQL.Add('select * from 表1');
query1.Active:=true;
f:=query1.Fields[1].text;
showmessage(f);
Query1.Free;
end;
end;
with DataModule2 do
begin
query1:=tadoquery.create;
query1.Active:=true;
query1.SQL.Clear;
query1.SQL.Add('select * from 表1');
query1.Active:=true;
f:=query1.Fields[1].text;
showmessage(f);
Query1.Free;
end;
还是不行!!!!
query1:=tadoquery.create这一句通不过啊,惨!
出错信息是“NOT ENOUGH ACTUAL PARAMETERS”
麻烦你在机子上调试通过再告诉我,我愿奉上50分!!!
我试了一下,你看这样行不行
with DataModule2 do
begin
query1:=tadoquery.create(DataModule2);
try
Query1.connectionstring :='Provider=MSDASQL.1;Persist Security Info=False;Data Source=为你的数据源名';
query1.SQL.Add('select * from 表1');
query1.Active:=true;
f:=query1.Fields[1].text;
showmessage(f);
finally
Query1.Free;
end;
end;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, ADODB;
type
TDataModule2 = class(TDataModule)
Query1: TADOQuery;
procedure asdf();
end;
var
DataModule2: TDataModule2;implementation
procedure TDataModule2.asdf();
var f:string;
begin
query1:=tadoquery.create(DataModule2);
query1.ConnectionString:='Provider=MSDASQL.1;Password=" ";Persist Security Info=True;User ID=sa;Data Source=英德款项';
query1.Active:=true;
query1.SQL.Clear;
query1.SQL.Add('select * from 表1');
//query1.Active:=true;
f:=query1.Fields[0].text;
showmessage(f);
end;
{$R *.DFM}end.
注释掉是不行的,像我那么写
Query1.connectionstring :='Provider=MSDASQL.1;Persist Security Info=False;Data Source=为你的数据源名';
query1.SQL.Add('select * from 表1');
query1.Active:=true;
f:=query1.Fields[1].text;
showmessage(f);
不对吗,我调试过的能显示数据
query1 已经在TDataModule 里了unit Unit2;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, ADODB;type
TDataModule2 = class(TDataModule)
Query1: TADOQuery;
ADOConnection1: TADOConnection;
private
procedure asdf;
{ Private declarations }
public
{ Public declarations }
end;var
DataModule2: TDataModule2;implementation{$R *.DFM}{ TDataModule2 }procedure TDataModule2.asdf;
var
f:string;
begin
query1.Active:=false;
query1.SQL.Clear;
query1.SQL.Add('select * from 表1');
query1.Active:=true;
f:=query1.Fields[1].text;
//showmessage(f);效率差
messagebox(0,pchar(f),'提示',mb_ok+MB_ICONINFORMATION);end;end.
ctrl+shift+c
自动创建函数说明