Re: List availalbe SQL Servers?
- From: "Vitali Kalinin" <vitkalinin@xxxxxxxxx>
- Date: Wed, 26 Mar 2008 11:36:19 +0200
Had been asked and answered here several times.
procedure ListAvailableSQLServers(Names : TStrings);
var
RSCon: ADORecordsetConstruction;
Rowset: IRowset;
SourcesRowset: ISourcesRowset;
SourcesRecordset: _Recordset;
SourcesName, SourcesType: TField;
begin
OleCheck(CoCreateInstance(CLASS_Recordset, nil, CLSCTX_INPROC_SERVER or
CLSCTX_LOCAL_SERVER, IUnknown, SourcesRecordset) );
RSCon := SourcesRecordset as ADORecordsetConstruction;
SourcesRowset := CreateComObject(ProgIDToClassID('SQLOLEDB Enumerator'))
as ISourcesRowset;
OleCheck(SourcesRowset.GetSourcesRowset(nil, IRowset, 0, nil,
IUnknown(Rowset)));
RSCon.Rowset := RowSet;
with TADODataSet.Create(nil) do try
Recordset := SourcesRecordset;
SourcesName := FieldByName('SOURCES_NAME'); { do not localize }
SourcesType := FieldByName('SOURCES_TYPE'); { do not localize }
Names.BeginUpdate;
try
while not EOF do begin
if (SourcesType.AsInteger = DBSOURCETYPE_DATASOURCE)
and
(SourcesName.AsString <> '')
then
Names.Add(SourcesName.AsString);
Next;
end;
finally
Names.EndUpdate;
end;
finally
Free;
end;
end;
.
- Follow-Ups:
- Re: List availalbe SQL Servers?
- From: Jouni Aro
- Re: List availalbe SQL Servers?
- References:
- List availalbe SQL Servers?
- From: Jouni Aro
- List availalbe SQL Servers?
- Prev by Date: Re: List availalbe SQL Servers?
- Next by Date: Re: List availalbe SQL Servers?
- Previous by thread: Re: List availalbe SQL Servers?
- Next by thread: Re: List availalbe SQL Servers?
- Index(es):