我用的是adoconnection+adoquery+datasource,如何设置相对路径呢。我现在的设置方法是在adoconnecitonstring 里面设定的。用绝对路径找到数据库,连接运行都没有问题。 昨天晚上我在连接的第二步,即输入数据库名称里,输入的是data\safety.mdb(程序和data在同一目录里),连接运行都成功,可是今天连接就不行了,其间我重新装过delphi7. 另外我输入 .\data\safety.mdb 连接行不通,找不到数据库
输入 ..\data\safety.mdb测试连接成功,程序运行时不成功
输入...\data\safety.mdb测试连接成功,程序运行时不成功
输入....\data\safety.mdb测试连接行不通了请给一个能连接通的相对路径,现在我编的这个程序,需要在其他机器上直接运行。急用!
多谢!
输入 ..\data\safety.mdb测试连接成功,程序运行时不成功
输入...\data\safety.mdb测试连接成功,程序运行时不成功
输入....\data\safety.mdb测试连接行不通了请给一个能连接通的相对路径,现在我编的这个程序,需要在其他机器上直接运行。急用!
多谢!
var datepath:string;
begin
datepath:=ExtractFilePath(Application.ExeName);{程序自动找到执行程序路径} AdoConnection.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;DataSource='+datepath+'data\safety.mdb;Persist Security Info=False';{AdoConnection.ConnectionString也自动生成}
AdoConnection.Connected:=true;
adoquery.Active:=true;
...{自己接着写}
end;
acStuMan->ConnectionString=WideString("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+AppDir+"StuMan.mdb;Persist Security Info=False");//这里!
try
{
acStuMan->Open();
}
catch(...)
{
Application->ShowMainForm=false;
Application->MessageBoxA("不能连接数据库!","提示信息",MB_OK|MB_ICONERROR);
Application->Terminate();
}
datepath.exepath:string;
begin
ChDir(ExtractFilePath(Application.ExeName));{程序自动找到执行程序路径}
ChDir('..');{到上个路径啊}
exepath:=getcurrentdir();
datapath:=..........{自己写了啊}
我觉得ziqing(delphi转.net中)的这个办法挺好。
1.你不要在设计时指定ConnectionString属性。
2.你不要担心用户的目录和你的设置不一样,因为ExtractFilePath(Application.ExeName)确保程序可以自行查找到安装目录的位置。
ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+datasource+';Persist Security Info=False';是ACCESS下的,其他的你可以自己改
SetCurrentDirectory(extractFilePath(paramstr(0)))
这样在程序中在使用你的相对路径,你还是好好看看WINDOWS基本知识