在使用Ado访问数据库Access,当程序编译成可执行程序后,将编好的程序拷到其他计算机上,如果Access的路径不对时,程序会出错,如和解决这一问题?(25分

  • 主题发起人 yanning-923
  • 开始时间
Y

yanning-923

Unregistered / Unconfirmed
GUEST, unregistred user!
在使用Ado访问数据库Access,当程序编译成可执行程序后,将编好的程序拷到其他计算机上,如果Access的路径不对时,程序会出错,如和解决这一问题?(25分)<br />数据库:Access
访问方式:ADO
存在问题:通过ADo连接Access时,此时Access路径是已经固定的,如果将编译好的程序,拷贝到其他计算机上时,如果Access的路径有变,那么编译好的程序在其他计算机上运行会出错,如何解决这个问题??
 
S

sbzldlb

Unregistered / Unconfirmed
GUEST, unregistred user!
使用相对路径
或者用个INI文件保存access路径
每次运行程序读配置,然后连接数据库
 
H

happycyp

Unregistered / Unconfirmed
GUEST, unregistred user!
用动态路径:
conns:='Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=mypass;Data Source=%sDB/SMS.mdb;Persist Security Info=true'; //带密码
sFilePath:=ExtractFilePath(Application.ExeName);
try
//数据库连接
ADOConnectionL_S.Connected := False;
ADOConnectionL_S.ConnectionString:='';
ADOConnectionL_S.ConnectionString:=format(conns,[sFilePath]);;
ADOConnectionL_S.Connected := True;
except
Application.Terminate;
end;
 

快乐果果

Unregistered / Unconfirmed
GUEST, unregistred user!
编辑ADOConnection配置时,选择access路径不要使用绝对路径,如:‘e:/code/access1.mdb’
应该把它修改为相对路径,如果和可执行程序在一个目录下,直接写access1.mdb就可以了。
 
H

hs9206

Unregistered / Unconfirmed
GUEST, unregistred user!
使用相对路径
或者用个INI文件保存access路径
还用就是在做连接时做异常处理,
当连接出错时,可用opendialog选择数据库连接
做动态连接数据库。
 
R

royal1442

Unregistered / Unconfirmed
GUEST, unregistred user!
用 udl 文件连接数据库,只要修改udl文件,程序不用做任何修改!
 
S

SiWeiLiuLang

Unregistered / Unconfirmed
GUEST, unregistred user!
把你的连接串写到INI文件里
 

空心

Unregistered / Unconfirmed
GUEST, unregistred user!
他们都说完了,帮你顶,我觉的还是用ini文件最方便
 
Z

zhlfdm

Unregistered / Unconfirmed
GUEST, unregistred user!
用相对路径,或文件连接
 
F

farcity

Unregistered / Unconfirmed
GUEST, unregistred user!
用delphi自带的发布软件发布就可以了。如果有问题可以继续问我。
 
G

gtsyxm

Unregistered / Unconfirmed
GUEST, unregistred user!
用相对路径好了,很方便解决这个问题.
 
L

lps

Unregistered / Unconfirmed
GUEST, unregistred user!
(没仔细看,happycyp的方法已经说了)
这样搞就问题了
_SYS_PATH:= ExtractFilePath(Application.EXEName); //系统目录
_sys_sjk:=_sys_path+'data/wldt.mdb';//数据库放在DADA目录下

try
with DataModule1.ADOConnection1 do
begin
ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='''+_sys_sjk+''' ;Jet OLEDB:Database Password=';
Connected:=true;
end
except
showmessage('无法打开数据库,请重新安装数据库驱动程序!!');
application.Terminate;
end;
 
B

bbscom

Unregistered / Unconfirmed
GUEST, unregistred user!
conns:='Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=mypass;Data Source=db1.mdb;Persist Security Info=true';
這個就可以了。
 
M

Mark Lai

Unregistered / Unconfirmed
GUEST, unregistred user!
如果*.mdb和程序是放在同一个目录下的,用楼上的应该可以了.其实用相对路径,或做一个配置项,在程序中可以修改的话就可以了.
 
C

chuliheng

Unregistered / Unconfirmed
GUEST, unregistred user!
同意LPS的说法。
 
顶部