Hallo
Das mit der Verbindung ohne Instanzangabe hatte damals doch nicht funktioniert, und ich möchte hier meine Lösung niemandem vorenthalten. Es gibt sicherlich bessere Wege, als die, die ich gefunden habe, aber sie funktioniert.
Auch mit NetServerEnum fand ich den Instanzname nicht.
Mit den Diensten Auslesen kam ich auch auf keinen grünen Zweig.
Durch auslesen der Registry:
Delphi-Quellcode:
Uses
Registry, ComCtrls;
--------------------------------
procedure TForm1.FormCreate(Sender: TObject);
var Reg: TRegistry;
sList: TStringList;
i: integer;
Item: TListItem;
Column: TListColumn;
begin
ListView1.ViewStyle := vsReport;
ListView1.Columns.Clear;
Column := ListView1.Columns.Add;
Column.Caption := '
Name';
Column.AutoSize := true;
Column := ListView1.Columns.Add;
Column.Caption := '
Wert';
Column.AutoSize := true;
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
sList := TStringList.Create;
try
if Reg.OpenKey('
Software\Microsoft\Microsoft SQL Server\Instance Names\SQL',false)
then
begin
Reg.GetValueNames(sList);
for i := 0
to sList.Count - 1
do
begin
Item := ListView1.Items.Add;
Item.Caption := sList[i];
Item.SubItems.Add(Reg.ReadString(sList[i]));
end;
Reg.CloseKey;
end;
finally
Reg.Free;
sList.Free;
end;
end;