1

我有一个 ADO 连接字符串:

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

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

4

1 回答 1

3

如果您只想按原样解析字符串,则可以使用 StringList 设置DelimiterStrictDelimiterassign 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 本身允许访问,通过Propertieswhich 将列出比分配的值更多的值,并且将是更可取的方式。

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;
于 2013-06-25T05:30:07.063 回答