我编的delphi程序为什么换了路径后就无法读取?
我编了一个树形说明,通过数据库和它连接,保存文件后,然后把文件移动到了另一个文件夹,发现delphi7无法读取,为什么?怎么解决?举个例子说,我编了个delphi程序,把...
我编了一个树形说明,通过数据库和它连接,保存文件后,然后把文件移动到了另一个文件夹,发现delphi7无法读取,为什么?怎么解决?
举个例子说,我编了个delphi程序,把dpr等文件存在xx目录下,然后我把xx目录移动到了zz目录下,发现用delphi7读取报错
exe文件没任何问题,主要是我改变文件夹后,delphi读不出文件,一读就报错,也就是说连读都读不了,如果是数据库文件路径错误的话,那应该是exe文件也会出错,但是我偏偏exe文件没出错,而且我数据库文件也没改路径,就是改了delphi生成的文件路径 展开
举个例子说,我编了个delphi程序,把dpr等文件存在xx目录下,然后我把xx目录移动到了zz目录下,发现用delphi7读取报错
exe文件没任何问题,主要是我改变文件夹后,delphi读不出文件,一读就报错,也就是说连读都读不了,如果是数据库文件路径错误的话,那应该是exe文件也会出错,但是我偏偏exe文件没出错,而且我数据库文件也没改路径,就是改了delphi生成的文件路径 展开
提示该问答中所提及的号码未经验证,请注意甄别。
5个回答
展开全部
你可能用的是静态连接数据库,这样程序换个文件夹或者换台电脑就不能用了,你可以使用动态连接数据库,我写一个连接ACCESS和SQL两种数据库的代码给你:
1.ACCESS数据库的联接方式:
条件:Adoconnection1,数据库名:Sample 密码:123,数据库文件路径为程式存取的根目录。
procedure TDataModule1.DataModuleCreate(Sender: TObject);
var
DbPath:String;
begin
DbPath:=ExtractFilePath(Application.ExeName)+'Sample.mdb';
Adoconnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=123;Data Source='+DbPath+';Persist Security Info=false';
Adoconnection1.LoginPrompt:=False;
Adoconnection1.Connected:=True;
end;
你把上面的这些条件改成你实际的就行了.
2.SQL的连接方式:
条件:控件名:AdoConnecion1,数据库名:Sample,用户名:sa 密码:123,数据库地址:本机
AdoConnection1.ConnectionString:='Provider=SQLOLEDB.1;Password=123;Persist Security Info=True;User ID=sa;Initial Catalog=Sample;Data Source=.';
Adoconnection1.LoginPrompt:=False;
Adoconnection1.Connected:=True;
如果还是不懂,就QQ我,我教你!我的号码:593506287
1.ACCESS数据库的联接方式:
条件:Adoconnection1,数据库名:Sample 密码:123,数据库文件路径为程式存取的根目录。
procedure TDataModule1.DataModuleCreate(Sender: TObject);
var
DbPath:String;
begin
DbPath:=ExtractFilePath(Application.ExeName)+'Sample.mdb';
Adoconnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=123;Data Source='+DbPath+';Persist Security Info=false';
Adoconnection1.LoginPrompt:=False;
Adoconnection1.Connected:=True;
end;
你把上面的这些条件改成你实际的就行了.
2.SQL的连接方式:
条件:控件名:AdoConnecion1,数据库名:Sample,用户名:sa 密码:123,数据库地址:本机
AdoConnection1.ConnectionString:='Provider=SQLOLEDB.1;Password=123;Persist Security Info=True;User ID=sa;Initial Catalog=Sample;Data Source=.';
Adoconnection1.LoginPrompt:=False;
Adoconnection1.Connected:=True;
如果还是不懂,就QQ我,我教你!我的号码:593506287
展开全部
你肯定数据库路径写死了,
两种解决办法:
1.写相对路径 (数据库文件路径和你的程序要保持相对不动)
2.用个udl文件配置路径
两种解决办法:
1.写相对路径 (数据库文件路径和你的程序要保持相对不动)
2.用个udl文件配置路径
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对,依我看,肯定是数据库用了绝对路径,你的EXE一打开就出不断地弹出错误提示框吧?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的数据库连接地址可能设置成了绝对地址如:d:\xx\数据库文件;换了目录肯定会报错的,应该改成相对地址,相对于你的可执行文件所在目录,应该为ExtractFilePath(Application.ExeName)+'xx\数据库文件'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的数据库路径可能是绝对路径,用相对路径看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询