我做了个窗体,里面放置了ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    DataSource1:TDataSource,其中ADOConnection1的ADOConnection1.ConnectionString=Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=E:\Borland\Delphi7\Projects\人事管理系统.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.我想把其中的相对路径换成绝对路径,于是我在ONCREATE里面写了以下代码:
procedure TForm3.FormCreate(Sender: TObject);var
  loginstr:string;
  loginstt:string;
  loginsts:string;
beginloginstr:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source='+ExtractFilePath(ParamStr(0)) +'人事管理系统.mdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";';
loginstt:='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'+'''';
loginsts:='t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';ADOConnection1.Connected:=true;
ADOConnection1.ConnectionString:=loginstr+loginstt+loginsts;
adoquery1.open;
adoquery1.Active:=true;
end;
为什么老提示"验证错误"呢?

解决方案 »

  1.   

    真够繁琐的。
    我刚启动了程序要修改呢,顺便复制给你。暂且将密码留空了。
    var pwd,sql:string;
    begin
        pwd := '';
        SQL := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+
             databasepath+'\hsong.mdb'+
             ';Persist Security Info=False;'  +
             'Jet OLEDB:Database Password='+pwd+'';
        ADOConnection1.Connected := false;
        ADOConnection1.ConnectionString := SQL;
        ADOConnection1.Connected := true;
        adoquery1.Active:=true;
        adotable1.Active:=true;
    end;
    用try ...except...end;更好一些。
      

  2.   

    修改自己的帖子居然没有权限,重新发一次。
    var pwd,sql:string; 
    begin 
        pwd := ''; 
        SQL := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ 
            ExtractFilePath(Paramstr(0))+'\hsong.mdb'+ 
            ';Persist Security Info=False;'  + 
            'Jet OLEDB:Database Password='+pwd+''; 
        ADOConnection1.Connected := false; 
        ADOConnection1.ConnectionString := SQL; 
        ADOConnection1.Connected := true; 
        adoquery1.Active:=true; 
        adotable1.Active:=true; 
    end; 
    用try ...except...end;更好一些。
      

  3.   

    可以了,不过为什么呢?不知道我哪里出错了.我刚学DELPHI,很多东西不明白.
      

  4.   

    ADOConnection1.ConnectionString前加ADOConnection1.close
      

  5.   

    我在工具里面一开始设置的adoconnection.connected:=false呀!
      

  6.   

    你虽然设置了false,可是你连接字符串没设置就打开了。所以出错这里上下换个位置就好了。
    ADOConnection1.Connected:=true; 
    ADOConnection1.ConnectionString:=loginstr+loginstt+loginsts;