这是 "绝对路径":
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我把程序设为相对路径就不行了,运行不了. 这相对路径到底怎么设置.
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我把程序设为相对路径就不行了,运行不了. 这相对路径到底怎么设置.
这是完整路径的话,你的相对路径..\Database\wave.mdb,假设你的应用是在colle下,那工作路径就是F:\DelphiPro\Colle, ..\Database\wave.mdb就等于F:\DelphiPro\Database\wave.mdb,你明白..表示什么没有?是上一级目录,一个.才是当前目录,或是直接都不要,就Database\wave.mdb
你不会在datamodule.oncreate事件中用代码设置路径,然后再打开连接?
我是在这引用的:
procedure TCollectionForm.FormCreate(Sender: TObject);
begin
CollectionForm.Left:=100;
CollectionForm.Top:=40;
//CollectionForm.WindowState:=wsMaximized;
Query1:=TADOQuery.Create(self);
Query1.Connection:=DataModule1.ADOConnection;
//CollectionQuery:=tadoquery.create(self);
//CollectionQuery.connection:=DataModule1.adoconnection;
GroupBox1.Left:=0;
GroupBox1.Top:=60;
GroupBox2.Left:=0;
Bevel2.Left:=536;
Bevel2.Top:=7;
Bevel1.Left:=3;
Bevel1.Top:=257;
EditTimeX.text:='0';
EditPtY.text:='0';
EditPrY.text:='0';难道跟在哪引用有关系吗? 希望指点~`
EditAx.text:='0';
LoginForm:=TLoginForm.Create(self);
LoginForm.ShowModal;
Edit1.text:=SysUserName;
end;
2.在数据模块的oncreate事件中
ADOConnection.connectstring := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='
+ExtractFilePath(application.exename)+'..\Database\wave.mdb;';
ADOConnection.open;
ExtractFilePath(application.ExeName) +
相对于EXE文件的相对路径
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;
参考这个试试