首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi 利用Data Module 连接数据库相对路径有关问题

2012-02-08 
delphi 利用Data Module 连接数据库相对路径问题?这是绝对路径 :objectDataModule1:TDataModule1OldCrea

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;
参考这个试试

热点排行