在线等:请大家帮帮我!很急!(100分)

  • 主题发起人 主题发起人 fysheng
  • 开始时间 开始时间
F

fysheng

Unregistered / Unconfirmed
GUEST, unregistred user!
我做了一个程序,用的是access数据库和ADO组件,我把ADOConnection的connectstring属性中的datasource值设为除我的程序源代码
所在文件夹之外的文件夹后,但我的程序还总去我的程序源代码所在文件夹去找我用的access数据库,这是为什么呢?
我用delphi7.0所带的install shield express 打包的程序,安装之后,程序启动后,它总按我制作的源程序的路径去找access数据库,
即使在其它的机子上安装,且上面的路径不存在,它也这样去找,这是为什么?
也就是我用access做数据库的程序应该怎么发布呢?

请大家帮帮我!很着急!在线等!
 
你要把 ConnectString 设置成为可变的,也就是要把你的数据库与可执行程序放在一起,
然后读取你当前的程序运行路径,来设置正确的数据库路径。
不能明确的指明数据库的存放路径,比如C:/aaa.mdb ,这样你的程序就不能随意发布了。
 
不用设置那么多,发布的时候,只要一个EXE,和一个数据库就行。
不过在主窗体创建时,连接数据库。代码如下:
var Path:String;
begin
try
DB.Connected:=False;
DB.ConnectionString:='';
Path:=ExtractFileDir(Application.ExeName);
DB.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;'+
'Data Source='+Path+'/yourDB.mdb;Persist Security Info=False;'+
'Jet OLEDB:Database Password=YourPassword';
DB.Connected:=True;
except
Application.MessageBox(不能连接数据库!'','错误',
MB_OK+MB_ICONERROR);
end;
 
后退
顶部