怎样才能使程序随处运行?(在线等待) 我用ado连接了一个access 的数据库编译后的程序能到处运行(在任何目录下),但是把程序和数据库一起移动的话就是不能运行。(ado 连接的时候不是用的绝对路径吗,用相对路径可以吗。)谁能告诉我应怎样编写程序。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在连接字符串中找到你的Access文件名,把文件名前面的路径去掉,这样就可以了,或者用odbc连接也没有问题。 用相对路径 这样最好你打开程序源代码 pas文件把里面的绝对路径改成相对路径就可以了用ODBC有些麻烦 当然可以,Dbconn.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ ExtractFilePath(Application.ExeName)+'中心站D.mdb'+ ';Persist Security Info=False'; try Dbconn.Open; except showmessage('打开[中心站D.mdb]失败'); end; 出现问题的原因:数据库采用静态的连接。所以一动数据库程序就找不到数据库,出错。可以用以下的方法动态的连接数据库:uses ADOConEd;procedure TfrmMain.FormCreate(Sender: TObject);var ConnectString: String; ConfigFile: TIniFile;begin ConfigFile := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'Config.ini'); //数据库的连接 If Not FileExists(ExtractFilePath(Application.ExeName) + 'Config.ini') Then Begin ShowMessage('数据库没有连接,请先连接数据库!'); ConnectString := PromptDataSource(Handle, ConnectString); ConfigFile.WriteString('ConnectString', 'CurConnectString', ConnectString); End Else Begin ConnectString := ConfigFile.ReadString('ConnectString', 'CurConnectString', ''); End; frmDM.ADOConnection1.ConnectionString := ConnectString; Try frmDM.ADOConnection1.Open; Except ShowMessage('数据库连接错误,请检查配置文件 Config.ini !'); DeleteFile(ExtractFilePath(Application.ExeName) + 'Config.ini'); Application.Terminate; End;end;在以上的连接中程序把连接字符串存在一个配置文件中,以后每次连接时直接读取连接字符串。如果读取的字符串不能接,则出现数据库连接对话框,并改写配置文件。 上面还要使用一个单元:IniFiles.(用于生成配置文件) delphi 中 a的b次方怎么算啊? delphi工程问题 为什么我用谁的用户名和密码登陆都是显示数据库中第一个记录的信息?? 请教各位高手开发系统的时候,主界面是如何设计的? 超急-立马给分。在DELPHI下如何实现访问网络共享资源! 如何关闭一个 open dataset!谢了! 这个错误怎么解决 怎样将一个字符串str1中空格前面的那些保存为另一个字符串str2 各个BAND是怎么回事啊? delphi-5 如何判断edit控件中输入的必须是中文? 在界面上的控件如Edit控件,要用鼠标来自由拖动,一般采用什么做法比较合适
或者用odbc连接也没有问题。
Dbconn.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+
ExtractFilePath(Application.ExeName)+'中心站D.mdb'+
';Persist Security Info=False';
try
Dbconn.Open;
except
showmessage('打开[中心站D.mdb]失败');
end;
数据库采用静态的连接。
所以一动数据库程序就找不到数据库,出错。
可以用以下的方法动态的连接数据库:
uses ADOConEd;procedure TfrmMain.FormCreate(Sender: TObject);
var
ConnectString: String;
ConfigFile: TIniFile;
begin
ConfigFile := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'Config.ini');
//数据库的连接
If Not FileExists(ExtractFilePath(Application.ExeName) + 'Config.ini') Then
Begin
ShowMessage('数据库没有连接,请先连接数据库!');
ConnectString := PromptDataSource(Handle, ConnectString);
ConfigFile.WriteString('ConnectString', 'CurConnectString', ConnectString);
End
Else
Begin
ConnectString := ConfigFile.ReadString('ConnectString', 'CurConnectString', '');
End; frmDM.ADOConnection1.ConnectionString := ConnectString;
Try
frmDM.ADOConnection1.Open;
Except
ShowMessage('数据库连接错误,请检查配置文件 Config.ini !');
DeleteFile(ExtractFilePath(Application.ExeName) + 'Config.ini');
Application.Terminate;
End;
end;在以上的连接中程序把连接字符串存在一个配置文件中,
以后每次连接时直接读取连接字符串。
如果读取的字符串不能接,
则出现数据库连接对话框,
并改写配置文件。
IniFiles.(用于生成配置文件)