Точные специфические части строки 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;
Другие вопросы по тегам