Yo uso esto en una de mis aplicaciones
Código Delphi
[-]
procedure DatabasesOnServer(Databases : TStrings);
var rs : _RecordSet;
begin
Databases.Clear;
with TAdoConnection.Create(nil) do
try
ConnectionString := 'Provider=SQLOLEDB.1;Password='+editPass.Text+';'+
'Persist Security Info=True;User ID='+editUser.Text+
';Initial Catalog=master;Data Source='+editServer.Text;
LoginPrompt := False;
try
Open;
rs := ConnectionObject.OpenSchema(adSchemaCatalogs,EmptyParam,EmptyParam);
with rs do
begin
try
Databases.BeginUpdate;
while not Eof do
begin
Databases.Add(VarToStr(Fields['CATALOG_NAME'].Value));
MoveNext;
end;
finally
Databases.EndUpdate;
end;
end;
Close;
except
on e:exception do
MessageDlg(e.Message,mtError, [mbOK],0);
end;
finally
Free;
end;
end;
y lo uso asi
Código Delphi
[-]
Screen.Cursor := crSQLWait;
Invalidate;
comboCatalogos.Items.Clear;
DatabasesOnServer(comboCatalogos.Items);
Screen.Cursor := crDefault;