这个问题就那么难吗????请问在 MIDAS三层中 远程数据模块的ADOConnect 如何动态连接数据库? (50分)

  • 主题发起人 主题发起人 xhyph
  • 开始时间 开始时间
X

xhyph

Unregistered / Unconfirmed
GUEST, unregistred user!
当我做好以后当然是不知道对方的后台数据库的路径,
我的设想是让ADOConnect连接与它同一目录的UDL文件
但是我怎么让远程数据模块中的ADOConnect在创建之前让ADOConnect自己
找到当前目录进行连接,
TPos.RemoteDataModuleCreate(Sender: TObject);
procedure TPos.Pos_ADOConnectionBeforeConnect(Sender: TObject);
好象不产生事件啊
为什么在那里我不能做些初始化的事情?
最简单的在那里ShowMessage('')也不出来
 
代码,代码。
 
procedure TPos.Pos_ADOConnectionBeforeConnect(Sender: TObject);
begin
ShowMessage('');
end;
当客户端连接服务端的时候,如果有ShowMessage, 就死机
 
你说 客户端 连接服务器的时候,如果有ShowMessage就死机,我试过,没有这种情况!!
关于动态配置数据库连接参数,就是动态生成ADOConnection的ConnectionString值。
我的做法是编写一个配套的数据库参数设定程序,将ConnectionString值写入注册表
参看以下代码:
==========
procedure TFrmMain.LoadConfig;
var reg:TRegistry;
begin
reg := TRegistry.Create();
SQLStringMemo.Lines.Clear;
try
reg.RootKey := HKEY_CURRENT_USER;
if Reg.OpenKey('/Software/ES_SOFTWARE/Server/', True) then
begin
SQLStringMemo.Lines.Add(Reg.ReadString('SQLString'));
Reg.CloseKey;
end;
finally
Reg.Free;
end;
end;
----------------
//调用ADODB单元的PromptDataSource过程,显示标准的ADO参数设置对话框。
procedure TFrmMain.ModifyButtonClick(Sender: TObject);
var s : String;
begin
s := SQLStringMemo.Text;
SQLStringMemo.Text := PromptDataSource(Handle,S);
end;
 
啊????你没有???那就奇怪了
 
再试试!
 
我试了千万次了
 
后退
顶部