ADOConnection String的确切特定部分

时间:2013-06-25 04:40:25

标签: delphi adoconnection

我有一个ADO连接字符串:

Provider=SQLOLEDB.1;Data Source=MYCOMPUTER\SQL2008;User ID=GuestUser;Password=password;Persist Security Info=True;Initial Catalog=DefaultDatabase;

我想将字符串的特定部分读入各种TEdit控件。是否有一个函数能够为我解析该信息,或者我需要在分号处拆分字符串,然后再用等号并读取该字符串数组的第一个索引?

1 个答案:

答案 0 :(得分:3)

如果您只想解析字符串,可以使用StringList设置DelimiterStrictDelimiter并指定DelimitedText。然后,您可以使用StringList的名称和值。

var
  i:Integer;
  sl:TStringList;
begin
   sl:=TStringList.Create;
   try
     sl.Delimiter :=';';
     sl.StrictDelimiter := true;
     sl.DelimitedText := Con.ConnectionString;
     Memo1.Lines.Assign(sl);
   finally
     sl.Free;
   end;
end;

访问,例如通过sl.Names[i]; sl.Values['Password']; sl.ValueFromIndex[i]

Ado本身允许通过Properties进行访问,这将列出超过指定值的内容,并且是更好的方式。

var
 i:Integer;
begin
  For i := 0 to Con.Properties.Count - 1 do
      begin
        Memo1.Lines.Add(Con.Properties[i].Name + '='+ VarToStr(Con.Properties[i].Value));
      end;
end;