delphi 利用Data Module 连接数据库相对路径问题?
这是 "绝对路径 ":
object DataModule1: TDataModule1
OldCreateOrder = False
Left = 657
Top = 186
Height = 150
Width = 215
object ADOConnection: TADOConnection
ConnectionString =
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\DelphiPro\Colle\ ' +
'Database\wave.mdb;Persist Security Info=False '
Provider = 'Microsoft.Jet.OLEDB.4.0 '
Left = 40
Top = 24
end
object ADOQuery: TADOQuery
Connection = ADOConnection
Parameters = <>
Left = 128
Top = 24
end
end
下面我把路径设为 "相对路径 " 怎么就不行了
object DataModule1: TDataModule1
OldCreateOrder = False
Left = 657
Top = 186
Height = 150
Width = 215
object ADOConnection: TADOConnection
ConnectionString =
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\Database\wave.md ' +
'b;Persist Security Info=False '
Provider = 'Microsoft.Jet.OLEDB.4.0 '
Left = 40
Top = 24
end
object ADOQuery: TADOQuery
Connection = ADOConnection
Parameters = <>
Left = 128
Top = 24
end
end
我把程序设为相对路径就不行了,运行不了. 这相对路径到底怎么设置.
[解决办法]
你不会在datamodule.oncreate事件中用代码设置路径,然后再打开连接?
[解决办法]
F:\DelphiPro\Colle\Database\wave.mdb
这是完整路径的话,你的相对路径..\Database\wave.mdb,假设你的应用是在colle下,那工作路径就是F:\DelphiPro\Colle, ..\Database\wave.mdb就等于F:\DelphiPro\Database\wave.mdb,你明白..表示什么没有?是上一级目录,一个.才是当前目录,或是直接都不要,就Database\wave.mdb
[解决办法]
在uses中添加inifiles
procedure TMainForm.FormCreate(Sender: TObject);
var
filename:string;
databasename,uid,s:string;
begin
Filename:=ExtractFilePath(Paramstr(0))+ 'mini.ini ';
myinifile:=Tinifile.Create(filename);
databasename:=myinifile.readstring( '配置参数 ', 'databasename ', ' ');
dataForm.Conn.Close;
s:= ' ' ;
s:= 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source= '+databasename+ ';Persist Security Info=False ';
dataForm.Conn.ConnectionString:=s;
dataForm.Conn.LoginPrompt:=false;
dataForm.Conn.Connected:=true;
end;
参考这个试试