Точные специфические части строки ADOConnection
У меня есть строка подключения ADO:
Provider=SQLOLEDB.1;Data Source=MYCOMPUTER\SQL2008;User ID=GuestUser;Password=password;Persist Security Info=True;Initial Catalog=DefaultDatabase;
И я хочу прочитать определенные части строки в различные TEdit
управления. Есть ли функция, которая может проанализировать эту информацию для меня, или мне нужно будет разделить строки на точки с запятой, затем снова по знакам равенства и прочитать первый индекс этого массива строк?
1 ответ
Если вы просто хотите разобрать строку как есть, вы можете использовать параметр StringList Delimiter
а также StrictDelimiter
и назначить 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;