在form中如何调用数据模块DataModule的某一函数?(300分)

  • 主题发起人 主题发起人 阿梅
  • 开始时间 开始时间

阿梅

Unregistered / Unconfirmed
GUEST, unregistred user!
在数据模块(远程)的函数DBConnect:
type
TPKGL = class(TRemoteDataModule, IPKGL)
........
private
{ Private declarations }
protected
{ Private declarations }
public
function DBConnect(aServerName, aDatabaseName, aUserName, aPassword: string): boolean;
{ Public declarations }
end;

function TPKGL.DBConnect(aServerName, aDatabaseName, aUserName, aPassword: string): boolean;
var
connStr: string;
begin
Result := True;
Connstr := 'Provider=SQLOLEDB.1;Password=' + aPassword + ';Persist Security Info=True;User ID=' + aUserName + ';Initial Catalog='+ aDatabaseName +';Data Source=' + aServerName;
try
if not ErpDBC.Connected then
begin
ErpDBC.ConnectionString := Connstr;
ErpDBC.DefaultDatabase := aDatabaseName;
ErpDBC.Open;
end;
except
messagebox(application.handle, '配置SQLSERVER数据库出错!', '提示!', 0);
Result := False;
end;
end;

同时在服务器端建一form窗口,却在form上无法调用数据模块DataModule的函数DBConnect,在form上已uses PKGL_RDB(数据模块),代码如下:
procedure TfrmMain.FormCreate(Sender: TObject);
var
serverName, databaseName, userName, password: string;
begin
if not DBConnect(ServerName, DatabaseName, UserName, Password) then
Application.Terminate;
end;

求助请路过的大侠...
 
高手呢?
 
唉,你的方法是定义在类中,你怎么可以直接用呢?
 
对象函数要用对象调用,如果是远程机上的就做成三层,用接口实现
 
谢谢! dreamisx, andrew57两位:
但是在编译ErpDBC时不通过,代码如下:

在数据模块(远程)的函数DBConnect:
type
TPKGL = class(TRemoteDataModule, IPKGL)
........
private
{ Private declarations }
protected
{ Private declarations }
public
{ Public declarations }
end;
function DBConnect(aServerName, aDatabaseName, aUserName, aPassword: string): boolean;


function TPKGL.DBConnect(aServerName, aDatabaseName, aUserName, aPassword: string): boolean;
var
connStr: string;
begin
Result := True;
Connstr := 'Provider=SQLOLEDB.1;Password=' + aPassword + ';Persist Security Info=True;User ID=' + aUserName + ';Initial Catalog='+ aDatabaseName +';Data Source=' + aServerName;
try
if not ErpDBC.Connected then --此处无法编译通过
begin
ErpDBC.ConnectionString := Connstr;
ErpDBC.DefaultDatabase := aDatabaseName;
ErpDBC.Open;
end;
except
messagebox(application.handle, '配置SQLSERVER数据库出错!', '提示!', 0);
Result := False;
end;
end;
 
已搞掂!
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
687
import
I
后退
顶部