我做了一个数据模块.代码如下
unit fjhz;interfaceuses
SysUtils, Classes, DB, ADODB,Dialogs;type
Tufjhz = class(TDataModule)
ADOC: TADOConnection;
ADOQ: TADOQuery;
private
{ Private declarations }
public
{ Public declarations }
function connect(km,bm,su,sp:string):boolean;
end;var
ufjhz: Tufjhz;implementation{$R *.dfm}function Tufjhz.connect(km,bm,su,sp:string):boolean;
begin
try
adoc.Connected:=false;
adoc.ConnectionString:='Provider=SQLOLEDB.1;Password='+ sP +
';Persist Security Info=False;User ID='+sU +
';Initial Catalog='+ bm +
';Data Source='+km;
adoc.Connected:=true;
result:=true;
except
result:=false;
end;
end;
end.
我在主程序中调用connect函数代码如下
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementationuses fjhz;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
ll:boolean;
begin
ll:=ufjhz.connect('budget','target','','sa');
end;end.
一点击按钮.就报错.说无效调用.这是怎么回事
unit fjhz;interfaceuses
SysUtils, Classes, DB, ADODB,Dialogs;type
Tufjhz = class(TDataModule)
ADOC: TADOConnection;
ADOQ: TADOQuery;
private
{ Private declarations }
public
{ Public declarations }
function connect(km,bm,su,sp:string):boolean;
end;var
ufjhz: Tufjhz;implementation{$R *.dfm}function Tufjhz.connect(km,bm,su,sp:string):boolean;
begin
try
adoc.Connected:=false;
adoc.ConnectionString:='Provider=SQLOLEDB.1;Password='+ sP +
';Persist Security Info=False;User ID='+sU +
';Initial Catalog='+ bm +
';Data Source='+km;
adoc.Connected:=true;
result:=true;
except
result:=false;
end;
end;
end.
我在主程序中调用connect函数代码如下
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementationuses fjhz;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
ll:boolean;
begin
ll:=ufjhz.connect('budget','target','','sa');
end;end.
一点击按钮.就报错.说无效调用.这是怎么回事
if not Assinged(ufjhz) then
ufjhz := Tufjhz.Create(nil);
ufjhz.connect('budget','target','','sa');
没有窗体,{$R *.dfm} 这一句是不需要的。
在function Tufjhz.connect(km,bm,su,sp:string):boolean;中,使用adoc前也要先创建实例。
adoc := TADOConnection.Create(self);