对于数据库的TDatabase,如何实现多个程序之间公用呢?

cdsy_go 2004-11-08 12:53:29
我们一般用BDE的时候,不是手工用BDE建一个数据库别名,而是用TDatabase控件来建立,然后用户登录,如果成功,再建立别名,供各数据库控件使用

可是如果你的程序想模块化,每个模块肯定要用到数据库别名,那要怎么办,
简短的说,如果有某个模块.dll文件,调用他的时候怎么获得主程序建立的数据库别名呢?
是将登录信息保存起来,调用模块时再登录建立一个新的别名吗,这样感觉不好吧,
还是将TDatabase就做为一个.dll模块公用呢

如果你的程序的报表经常变化,那么就可以将每个报表做成.dll文件,有新的就加一个.dll,可是dll却有不能用哪个数据库别名,麻烦死人啦,怎么办,

你们遇到这样的情况到底是怎么解决的啊???




...全文
103 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cdsy_go 2004-11-10
  • 打赏
  • 举报
回复
我的database1.LoginPrompt = False, 我测试过了的,
cdsy_go 2004-11-10
  • 打赏
  • 举报
回复
我是这么做的:
procedure DoTest(H:THandle;ADB:TDatabase);cdecl;
begin
Application.Handle := H;
with TForm1.Create(Application) do
try
database1 := adb;
with query1 do
begin
Close;
DatabaseName :=database1.DatabaseName ;
Open;
ShowModal;
end;
finally
Free;
end;
//上面的其实就可以只传一个参数,但是现在就是不管怎么做,他老上要提示输入密码!
//我想如果只取ADB这个控件的参数还是可以实现不出现密码提示框,但是这样就不是公用一个
//TDatabase控件了,我是这么认为的!
==========================================================
cdsy_go 2004-11-10
  • 打赏
  • 举报
回复
to leejiey(李杰)
我今天在网上查资料,我现在不是传的TDatabase,传的是Application句柄,就是Application.Handle ,行倒是行了,就是每次都出一个密码的提示框,要我输入密码!!!!

对于您说的方法,我也同样做了,可是还是要求输入密码?
==================================================================================
leejiey 2004-11-09
  • 打赏
  • 举报
回复
dll里定义个TDatabase变量
在dll接口中把主程序的TDatabase传过去
绝对可以,原来一直用这种方法,没任何问题的
ssq237712 2004-11-08
  • 打赏
  • 举报
回复
把你的模块统统编译成bpl,这样就可以了。
dll也可以,你把TDatabase传过去,不过要麻烦一些。
cdsy_go 2004-11-08
  • 打赏
  • 举报
回复
哎,现在就是对旧系统的升级啊,再说BDE都用顺手哒

对于哪个查询,常常要修改,麻烦的要死,又要赶进度,
程序升级也是,客户点有多,维护反正很痛苦!
zhq2000 2004-11-08
  • 打赏
  • 举报
回复
如果你的系统不是对旧系统进行改进,数据连接最好不要用BDE,改用ADO或DBExpress。
BDE已不再升级了。

2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧