是不是这样?以下是我在RDM中的代码:
var
ADOConnect : TADOConnection;
DSP : TDataSetProvider;
//创建和数据库的连接
procedure TWZGL.CreateConnect(DataBaseName : OleVariant);
var
i : integer;
begin
ADOLogin.Close;
ADOLogin.SQL.Clear;
ADOLogin.SQL.Add('select * from Login');
ADOLogin.Open;
while Not ADOLogin.Eofdo
begin
for i := 1 to ADOLogin.RecordCountdo
begin
DataBaseName := ADOLogin.FieldByName('DatabaseName').AsString;
ADOConnect := TADOConnection.Create(Self);
ADOConnect.Name := 'ADO' + DataBaseName;
ADOConnect.LoginPrompt := false;
//DBConnect(ADOConnect, ServerName, DBName, UserName, Password)
//该过程根据指定TADOConnection连接数据库
//ADOConnect : TADOConnection
DBConnect(ADOConnect, ServerName, DBName, UserName, Password);
ADOLogin.Next;
end;
end;
end;
//创建TDatasetProvider提供给客户端
//ADOConnName为用前面过程创建的TADOConnection
procedure TWZGL.CreateDSP(ADOConnName : OleVariant);
var
TableNames : TStrings;
begin
TableNames := TStringList.Create;
ADOConnect.Name := ADOConnName;
//GetTableName(ADOConnect : TADOConnection)为公共模块中的一个函数
//取得指定TADOConnection所连接数据库的所有表名
TableNames := GetTableName(ADOConnect);
while Not TableNames.Eofdo
begin
for i := 1 to TableNames.Countdo
begin
DSP := TDataSetProvider.Create(Self);
//我不知道这句对不对,我在文本上打的
DSP.Name := 'DSP' + TableNames.String;
//创建一个数据集提供给TDataSetProvider
//DSP.DataSet :=
end;
end;
end;
请各位帮我看看这样可行吗?另外我想问一下,在应用服务器中我应该怎样调用RDM中的过程,我试了很多次,总是不行,在别的模块中根本就不能用我写的过程,连RDM中的一个控件都都不能用。