我的程序开始运行时要连接数据库
program Manager;
uses
....
{$R *.res}
procedure AutoRun;
var
RegF : TRegistry;
begin
RegF:=TRegistry.Create;
try
RegF.RootKey:=HKEY_LOCAL_MACHINE;
if RegF.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',True) then
RegF.WriteString('WYJ2000Manager','D:\Manager.exe');
finally
RegF.CloseKey;
RegF.Free;
end;
end;begin
Application.Initialize;
AutoRun;
SplashForm := TSplashForm.Create(Application);
SplashForm.Show;
SplashForm.Update;
Sleep(1000);
ConDB := False;
Application.CreateForm(TMainForm, MainForm);
SplashForm.Hide;
SplashForm.Free;
if not ConDB then //现在要连接另一台机器上的ORACLE数据库
Application.Run
else
MainForm.Free;
end.
procedure TMainForm.FormCreate(Sender: TObject);
...
begin
...
try
ADOConnection1.Open;
except
on Exception do
begin //连接出错
MessageDlg('错误005' + #13 + '连接数据库失败!请检查数据库设置!',
mtError, [mbOk], 0);
ConDB := True; //窗口卸载
Exit;
end;
end;
end;这段程序在开机后手动运行正常,但是在开机时自动运行时提示
“连接数据库失败!请检查数据库设置”我自己认为可能是因为 :机器启动是要对网络进行初始设置,而当我的程序运行是网络设置还没完成所以连接数据库不能成功。因为在启动时托盘位置还没有出现本地连接图标我的程序就已经运行了。
不知道自己的分析对不对。请各位高手多多指教如何解决这个问题。
program Manager;
uses
....
{$R *.res}
procedure AutoRun;
var
RegF : TRegistry;
begin
RegF:=TRegistry.Create;
try
RegF.RootKey:=HKEY_LOCAL_MACHINE;
if RegF.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',True) then
RegF.WriteString('WYJ2000Manager','D:\Manager.exe');
finally
RegF.CloseKey;
RegF.Free;
end;
end;begin
Application.Initialize;
AutoRun;
SplashForm := TSplashForm.Create(Application);
SplashForm.Show;
SplashForm.Update;
Sleep(1000);
ConDB := False;
Application.CreateForm(TMainForm, MainForm);
SplashForm.Hide;
SplashForm.Free;
if not ConDB then //现在要连接另一台机器上的ORACLE数据库
Application.Run
else
MainForm.Free;
end.
procedure TMainForm.FormCreate(Sender: TObject);
...
begin
...
try
ADOConnection1.Open;
except
on Exception do
begin //连接出错
MessageDlg('错误005' + #13 + '连接数据库失败!请检查数据库设置!',
mtError, [mbOk], 0);
ConDB := True; //窗口卸载
Exit;
end;
end;
end;这段程序在开机后手动运行正常,但是在开机时自动运行时提示
“连接数据库失败!请检查数据库设置”我自己认为可能是因为 :机器启动是要对网络进行初始设置,而当我的程序运行是网络设置还没完成所以连接数据库不能成功。因为在启动时托盘位置还没有出现本地连接图标我的程序就已经运行了。
不知道自己的分析对不对。请各位高手多多指教如何解决这个问题。
解决方案 »
- 寻求有实力并有时间的人才一起合作
- 简体的SQL数据库,但客户端是在繁体操作系统录入的
- 惊天大秘密: (微软真无耻) 目前微软推广的ERP Attain 居然是用Delphi开发的,而且这套系统的二次开发语言是纯Pascal语法!
- 用针式打印机时,打印完成之后,打印纸还要走 ,怎么让它刚刚打完就停止走纸?
- 怎样用InstallShield制作出中文的安装程序?
- 怎么比较DELPHI与ACCESS的日期?
- 自动折行问题,不胜感激
- 求助:dbimage的正确用法!!!
- 安装控件的问题?
- 小妹?^_^?捉虫:如何动态的创建窗体!
- 发现连接远程SQL时windows默认是用命名管道,而不用TCP,导致连接不成功,如何修改为默认tcp/ip连接呢
- 在Delphi中,SizeOf(array)是如何实现的?
i:integer;
begin
while (i<5) or not (AdoConnection1.Active) do //设计数器,可以自己定i的值
begin
try
Adoconnection1.Open;
except
end;
Sleep(1000);
end;
//提示连接失败
end;