我用ADO做Access数据库,通过ADOConnection.ConnectionString设置为:Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=F:\Delphi\total\ajstat.mdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";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;
现在我用了一个OpenDialog1对话框,选择*.mdb的路径,但我用ADOConnection.ConnectionString:=Provider='Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source='+OpenDialog1.Files.Text+';Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";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';Delphi提示我str长度太长,怎么办呢?要我固定路径吗?

解决方案 »

  1.   

    我的只有这么长
    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\门诊收费\mz.mdb;Persist Security Info=False
      

  2.   

    只要设置几个必要的信息就可以了,如:
    ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;' +
                               'Source=' + ExtractFilePath(Application.ExeName) + 'data.mdb;' +'Persist Security Info=False';
      

  3.   

    调式通不过。提示:
    project total.exe raised esception class EOLeException with message'找不到可安装的ISAM.'Process stopped. Use Step or Run to continue.
      

  4.   

    ADOConnection1.Connected:=false;
      EditConnectionString(ADOConnection1);
      AdoConnection1.Connected:=true;
      

  5.   

    呵呵,类似的问题我快得200分了
    方法1.
    EditConnectionString
    方法2.
    PromptDataSource
    方法3.
    自己拼凑ConnectionString//一般都是写死的,没什么用
      

  6.   

    樓主用什麼ADO啊,那麼長!看得頭都暈了!!
      

  7.   

    EditConnectionString怎么用,谁能解释一下~~~~~散100分谢之~~
      

  8.   

    >>怎么用,谁能解释一下~~~~~ADOConnection1.Connected:=false;
      EditConnectionString(ADOConnection1);
      AdoConnection1.Connected:=true;
      

  9.   

    adoconnection1.connectionstring:=promptdatasource(handle,'')
    也行
      

  10.   

    EditConnectionString怎么用,谁能解释一下~~~~~散100分谢之~~
      

  11.   

    >>怎么用,谁能解释一下~~~~~
    uses  AdoConEd;...
    EditConnectionString(ADOConnection1);
      

  12.   

    ADOConnection1.Close;
      adoconnection1.ConnectionString:=PromptDataSource(Handle,adoconnection1.ConnectionString);
    ADOConnection1.Connected:=True;试试上面的PromptDataSource(Handle,adoconnection1.ConnectionString)
    你要怎样设置都行呀
      

  13.   

    use AdoConEd;function SetConnection(ConnStr:AnsiString):AnsiString;
    var
      Connedfrm: TConnEditForm;
    begin
      result:='';
      Connedfrm := TConnEditForm.Create(nil);
      try
        Connedfrm.Caption := '配置数据源';
        Connedfrm.OkButton.Caption := '确定';
        Connedfrm.CancelButton.Caption := '取消';
        Connedfrm.UseDataLinkFile.Caption := '使用连接文件';
        Connedfrm.SourceofConnection.Caption := '数据源连接';
        Connedfrm.HelpButton.Caption := '帮助';
        Connedfrm.UseConnectionString.Caption := '使用连接字符串';
        Connedfrm.Browse.Caption := '浏览';
        Connedfrm.Build.Caption  := '生成';
        Connedfrm.ConnectionString.Text := ConnStr;
        Connedfrm.UseConnectionString.Checked := true;
        Connedfrm.ShowModal;
        result:= Trim(Connedfrm.ConnectionString.Text)
      finally
        FreeAndNil(Connedfrm);
      end;
    end;