请问要动态调用ADO数据库,用TADOQuery 该怎样设置他的connectstring属性嗄?   假设偶的数据库的路径是
ExtractFileDir(application.ExeName)+'\data.mdb'
偶想要的是动态的设置路径的,而不是在ODBC中设置好数据源的那种,有办法实现吗?

解决方案 »

  1.   

    APath := ExtractFileDir(application.ExeName)+'\data.mdb'
    connstr := 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source='
        +APath+';Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";'
        +'Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="52rocktan";Jet OLEDB:Engine Type=5;'
        +'Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;'
        +'Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";'
        +'Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;'
        +'Jet OLEDB:Don'+''''+'t Copy Locale on Compact=False;'
        +'Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False'; with ADOConnection1 do
      begin
        if Connected then Connected := False;
          ConnectionString := connstr;
      end;
    APath 为你的数据库路进,一些相关属性组成了你的连接字符串connstr,根据自己的要求具体修改就行。
      

  2.   

    你先在delphi里手工设置一下,看看连接串是什么,然后用程序往上写不就行了么?
      

  3.   

    你先在delphi里手工设置一下,看看连接串是什么,然后用程序往上写不就行了么APath := ExtractFileDir(application.ExeName)+'\data.mdb'
      

  4.   

    我认为用ADO加数据文件*.UDL最方便,只要把ADOCONNECTION控件的ConnectionString 指上UDL文件即可
      

  5.   

    你用的是ACCESS的数据库吧?
    在程序里动态生成ODBC数据源名称,指向自己的数据库文件。
    TADOQuery的connectstring属性设置为数据源名称。
    我为了怕用户误删除数据源名称,每次程序运行都监测,没有
    就自己建一个。
      

  6.   

    最好能用 try... except     容错 处理
      

  7.   

    建一个.udl的文件,在其中设置好数据源,在DM中的Create中写Connection='File name='+GetCurDir+'\数据库.mdb'
      

  8.   

    我连接的是db4数据库,然后我吧dsn文件删掉了,可是我的程序可以继续使用,是不是到别的机器上也可以正常使用呢?