数据库程序启动?(100分)

  • 主题发起人 主题发起人 liamy
  • 开始时间 开始时间
L

liamy

Unregistered / Unconfirmed
GUEST, unregistred user!
我在做一个client/server程序,每次程序启动时,如果数据库没打开,
则程序会反映半天(很慢),然后才由系统给出一个提示,“请检查SQL SERVER ….”,
我如何在自己的程序中判断出数据库连不上,并且给出用户一个提示?
 
try
database.connect;
except
messagebox('aaaaaaaaaaaaaaaaa');
end;
 
写在哪?如何保证系统还为启动时,就判断?
 
建立一个DataModule,在上面放一个DataBase,注意Connected=False
写DataModule的OnCreate事件,

try
database.connect;
except
showmessage('aaaaaaaaaaaaaaaaa');
Application.ter....;
end;
在主程序中的Application.Init...之后,写
Application.createForm(TDataModule,DataModule);
 
用楼上的方法就可以了,不过我还是建议你连接数据不要在程序启动时自动连接,
何不象sql的客户端程序那样程序启动后,由用户自行连接,如查询、点击连接按钮
我的经验告诉我用户对启动速度慢很忌讳。
 
最好建立一个ini文件,程序中动态连接,这样可以根据客户的机器设置进行连接数据库
可以在datamodule的orcreate中连接
 
我用djdsz的方法,为什么总是出问题,似乎application.terminate不能立即结束!
在Delphi中编译运行没问题,可运行可执行问题就会出错!
 
application.terminate;
exit;
就成,不过,好象这样也的等...
 
还是有问题,有没有一个清晰的方法,而且不出小问题??
 
关于application.terminate不能立即结束这个问题,DFW里前不久还讨论过这个问题,你
去查查看吧。
实际上,楼上几位说的基本上已经解决问题了,不知道你说的“还是有问题,有没有一个清晰的方法,
而且不出小问题??”是什么意思。
 
搞个小把戏,不就是c/s系统是吧,在服务器上做个程序,检查sql server是否已启动,然后向网络发送
sql server的信息(用udp吧)。然后你的系统运行的时候检查一下接收到的信息,可以花个几秒时间
来查找服务器(这个时间你来设吧,如果重试了几次还没有服务器启动信息)信息表明sql
server没有启动的话,直接提示就行了。

如果你比较有空的话,还可以把那个服务器端程序做得完善一点:还可以从客户端启动sql server(
其实也可是用udp,服务器端程序接收到信息后,直接启动sql server服务就行了)
 
我的意思是,上面的方法我都试过了,但总是报错。我去查查“关于application.terminate不能立即结束这个问题,DFW里前不久还讨论过这个问题,你
去查查看吧。”吧
 
谢谢各位,问题解决了,用的kill process方法!
 
多人接受答案了。
 
后退
顶部