回 帖 发 新 帖 刷新版面

主题:ADOConnection1通过读INI连接提示:“无效的授

各位好 问题如标题 代码如下

procedure TForm1.BitBtn1Click(Sender: TObject);//以下为保存INI代码 经测试OK
begin
  if radiobutton1.Checked=true then//这里是SQL的NT认证模式
      begin
        inifile:=Tinifile.Create(ExtractFilePath(Paramstr(0))+'myini.ini');
        inifile.WriteString('SQL','name','');
        inifile.WriteString('SQL','password','');
        inifile.Destroy;
       end;
  if  radiobutton2.Checked=true then//这里是SQL的SA密码认证模式
    begin
      inifile:=Tinifile.Create(ExtractFilePath(Paramstr(0))+'myini.ini');
      inifile.Writestring('SQL','name',EDIT1.TEXT);
      inifile.WriteString('SQL','password',EDIT2.TEXT);
      inifile.Destroy;
   end;
end;

以下为设定ADO连接代码 我是通过 判断name是否为空来确定用户选定的SQL登陆方式(不知此法是否妥当?)
......
var
s1,s2:string;
ini:TIniFile;
begin
  ini := TIniFile.Create(ChangeFileExt(Application.ExeName,'myini.INI' ));
  s1:= ini.ReadString('SQL','name',''); 
  if s1='' then
  begin
     if ADOConnection1.Connected then  ADOConnection1.Connected := False;
ADOConnection1.ConnectionString :='Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=false;Initial Catalog=master;data source=(local)';
      ADOConnection1.Connected := True;
     end;
  if s1<>'' then
  s2:=ini.ReadString('SQL','password','');
   begin
    if ADOConnection1.Connected then  ADOConnection1.Connected := False;
      ADOConnection1.ConnectionString :='Provider=SQLOLEDB.1;Persist Security Info=true;User ID='+s1+';password='+s2+';Initial Catalog=master;data source=(local);';
      ADOConnection1.Connected := True;
    end;
......
ini.Destroy;
end;

运行后 提示:“无效的授权说明”
我估计应该是ADOConnection1.ConnectionString 这里出了问题 但不明其理 能否指点 感谢

回复列表 (共2个回复)

沙发

直接到DELPHI编辑器里
展开ConnectionString属性
连接正确后看一下你的这个
ConnectionString是否与你哪个相符
你的代码大概看了一下没有问题

可能是这里
'Provider=SQLOLEDB.1
如果都正确无误,升级一下ADO的版本

板凳

谢谢ZHLWYY关注
我做了一些测试 测试如下:
1.我这里的SQL SERVER2000是采用WINDOWS认证模式登陆的 我去掉对 if s1<>'' then 情况的判断后 即只留下if s1=''的这种情况 同时把ini.Destroy;改为ini.free;后 测试连接OK 

2.若只把ini.Destroy;改为ini.free; 希望通过判断两种情况来处理连接字符串 仍然提示:“无效的授权说明”

我来回复

您尚未登录,请登录后再回复。点此登录或注册