Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Liste aller SQL Server im Netz erstellen (https://www.delphipraxis.net/125706-liste-aller-sql-server-im-netz-erstellen.html)

ToFaceTeKilla 10. Dez 2008 08:22

Datenbank: MS SQL Server 2005 Workgroup Edition • Zugriff über: ADO

Liste aller SQL Server im Netz erstellen
 
Hiho,

wie im Titel bereits erwähnt, möchte ich eine Liste aller laufenden SQL Server (es sind ausschließlich MS SQL Server) erstellen. Nun hab ich via Google schon rausgefunden, dass das .Net-Framework 2.0 die Klasse SqlDataSourceEnumerator mitbringt. Allerdings beziehen sich alle Beispiele immer nur auf VBA. Wie kann ich aus Delphi raus darauf zugreifen?

Danke schonmal

Bernhard Geyer 10. Dez 2008 09:18

Re: Liste aller SQL Server im Netz erstellen
 
Im Entwickler-Forum gibt es beispiele fer NetServerEnum, SQLDMO und ODBC-API

ToFaceTeKilla 10. Dez 2008 10:16

Re: Liste aller SQL Server im Netz erstellen
 
Danke dir, das werd ich mir mal angucken. :thumb:

XiaN 12. Dez 2008 13:41

Re: Liste aller SQL Server im Netz erstellen
 
Wenn du es nicht 100% genau brauchst, dann hilft dir evtl. der Schnipsel hier :

Delphi-Quellcode:
function TSubnet.Ping(IP, Port: string): string;
var
  CurrentPC: TIdTCPClient;

begin

  Result := 'Online';

  CurrentPC := TIdTCPClient.Create(nil);
  CurrentPC.Host := IP;
  CurrentPC.Port := StrToIntDef(Port, 80);

  try

    CurrentPC.Connect;

  except

    on E: Exception do
    begin

      if AnsiContainsStr(E.Message, 'Socket Error # 10061') then
      begin
        Result := 'Service not available [' + AnsiReplaceStr(E.Message, #13#10, ' - ') + ']';
      end;

      if AnsiContainsStr(E.Message, 'Socket Error # 11001') then
      begin
        Result := 'Offline [' + AnsiReplaceStr(E.Message, #13#10, ' - ') + ']';
      end;

    end;

  end;

  CurrentPC.Free;
  Application.ProcessMessages;

end;
Der Standard MySQL Port ist glaube ich 3306.

Edit : Gut der MYSql Port hilft dir vmtl. nich viel ^^

Phoenix 12. Dez 2008 13:43

Re: Liste aller SQL Server im Netz erstellen
 
1. Geht es um MS SQL und da man MS SQL auch gerne über Named Pipes anspricht hilft es 2. eigentlich gar nicht, irgendwelche Ports zu prüfen.

XiaN 12. Dez 2008 13:47

Re: Liste aller SQL Server im Netz erstellen
 
Ich verles mich bei MSSQL und MYSQL immer wieder :?

Evtl. hilfts ja trotzdem irgendwem.

Centrii 12. Dez 2008 14:57

Re: Liste aller SQL Server im Netz erstellen
 
vielleicht hilft dir das weiter

Delphi-Quellcode:
procedure TfSettings.ComBDBServernameEnter(Sender: TObject);
var DMOApp, SrvList: OleVariant;
    i             : Integer;
begin
  Screen.Cursor := crhourglass;
  Application.ProcessMessages;
  try
    ComBDBServername.clear;
    DMOApp := CreateOleObject('SQLDMO.Application');
    SrvList := DMOApp.ListAvailableSQLServers;
    for i:=1 to SrvList.count do
    begin
      ComBDBServername.AddItem(varToStr(Srvlist.item(i)),nil);
    end;
    FreeAndNil(DMOApp);
    FreeAndNil(SrvList);
  except
    Screen.Cursor := crdefault;
    Application.ProcessMessages;
  end;
  Screen.Cursor := crdefault;
  Application.ProcessMessages;
end;
so mach ich es in einem Program von mir...


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz