我有一个 ADO 连接字符串:
Provider=SQLOLEDB.1;Data Source=MYCOMPUTER\SQL2008;User ID=GuestUser;Password=password;Persist Security Info=True;Initial Catalog=DefaultDatabase;
我想将字符串的特定部分读入各种TEdit控件。是否有一个函数能够为我解析该信息,或者我是否需要在分号处拆分字符串,然后再通过等号并读取该字符串数组的第一个索引?
我有一个 ADO 连接字符串:
Provider=SQLOLEDB.1;Data Source=MYCOMPUTER\SQL2008;User ID=GuestUser;Password=password;Persist Security Info=True;Initial Catalog=DefaultDatabase;
我想将字符串的特定部分读入各种TEdit控件。是否有一个函数能够为我解析该信息,或者我是否需要在分号处拆分字符串,然后再通过等号并读取该字符串数组的第一个索引?
如果您只想按原样解析字符串,则可以使用 StringList 设置Delimiter和StrictDelimiterassign 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;