Để liệt kê tất cả có sẵn Microsoft SQL Server, bạn có thể làm theo hướng dẫn tuyệt vời này:
Enumerating available SQL Servers. Retrieving databases on a SQL Server
Trong Zarko 's hướng dẫn , có một liên kết đến download the full source code có thể hữu ích để nhanh chóng kiểm tra và kiểm tra xem nó có phù hợp với y không Những nhu cầu cua chúng ta.
thói quen chính Sửa Žarko Gajic là:
procedure ListAvailableSQLServers(Names : TStrings);
var
RSCon: ADORecordsetConstruction;
Rowset: IRowset;
SourcesRowset: ISourcesRowset;
SourcesRecordset: _Recordset;
SourcesName, SourcesType: TField;
function PtCreateADOObject(const ClassID: TGUID): IUnknown;
var
Status: HResult;
FPUControlWord: Word;
begin
asm
FNSTCW FPUControlWord
end;
Status := CoCreateInstance(
CLASS_Recordset,
nil,
CLSCTX_INPROC_SERVER or CLSCTX_LOCAL_SERVER,
IUnknown,
Result);
asm
FNCLEX
FLDCW FPUControlWord
end;
OleCheck(Status);
end;
begin
SourcesRecordset := PtCreateADOObject(CLASS_Recordset) as _Recordset;
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;
Tôi không biết những gì tôi có thể thêm mà không lamering gì Žarko của giải thích.
http://delphi.about.com/od/sqlservermsdeaccess/l/aa090704a.htm – Whiler
Tôi thực sự đã sử dụng mã được liên kết của Whiler. Nếu bạn chuyển đổi nhận xét đó thành một câu trả lời và mở rộng nó một chút, tôi sẽ chấp nhận nó. –
Xong ... nhưng như tôi đã nói ... mọi thứ đã được giải thích trên trang của anh ấy và tôi không muốn * ăn cắp * nội dung của anh ấy:/ – Whiler