AW: MS SQL Server mit alternativen Ports nutzen
Moin moin,
deine Frage zu FireDAC speziell kann ich dir nicht beantworten. Wenn du den SQL-Server-Browser aber selbst abfragen musst, dann kannst du per UDP ein Byte ($02) an den Dienst senden und erhälst die Antwort. Hier ein simples Bsp:
Code:
Ab dem 4. Byte steht dann wohl ein reiner String in der Antwort. Was genau die ersten 3 Bytes der Antwort aussagen, kann ich dir nicht sagen. Eine Info/Doku/API dazu habe ich leider nicht finden können - ich hatte das einfach nur mal mit gesnifft.
function RawQueryMSServerBrowser(const PaStrServer: String): String;
var Client: TIdUDPClient; begin Client := TIdUDPClient.Create(nil); try Client.Send(PaStrServer, 1434, #$02); Result := Client.ReceiveString(1000); finally Client.Free; end; end; Eventuell hilfts dir ja weiter... |
AW: MS SQL Server mit alternativen Ports nutzen
Zitat:
Danke! Wenn es dir anders geht als mir. Du also mit Spezifikationen was anfangen kannst...tata http://msdn.microsoft.com/en-us/libr...(PROT.10).aspx Da ist sogar dein beispiel drin. und es geht auch als Broadcast. cool. http://msdn.microsoft.com/en-us/library/cc219743.aspx Das macht quasi den weg frei, dafür dass man dem Admin einfach eine Liste gefundener Instanzen anbietet. |
AW: MS SQL Server mit alternativen Ports nutzen
Danke für die Links. Mit diesen Infos kann man dann die Antwort ja korrekt auswerten. Wie findet ihr nur immer sowas - ich suche vermutlich generell mit den falschen Suchbegriffen ^^
|
AW: MS SQL Server mit alternativen Ports nutzen
ok es bedarf scheinbar eines echten parsers
Die antwort besteht aus folgenden Produktionsregeln. http://msdn.microsoft.com/en-us/library/cc219748.aspx Außerdem... Wie empfange ich mit einem UDP Client korrect alle Antworten eines Broadcasts? Ich empfange immer nur eine. Damit das funktioniert mache ich einfach gaaanz viele Broadcasts so dass verschiedene Server schneller sind. Das kann doch nicht der weg sein wie man sowas machen muss.
Delphi-Quellcode:
procedure TMSSQLServerBrowserClient.Refresh;
var counter:Cardinal; Client: TIdUDPClient; sreceived:string; begin FSQLServers.clear; Client := TIdUDPClient.Create(nil); try Client.Port := Port; Counter := getTickCount()+ 5000; while getTickCount() < counter do Begin Application.ProcessMessages; Client.Broadcast(CLNT_BCAST_EX,Port); // Client.Send(CLNT_UCAST_EX); sReceived := Client.ReceiveString(10000); Parse(sReceived); end;//while getTickCount() < counter do finally Client.Free; end; End; |
AW: MS SQL Server mit alternativen Ports nutzen
Eine Lösung für ActiveMQ Server habe ich neulich hier gepostet:
http://mikejustin.wordpress.com/2013...and-indy-10-6/ Eventuell hilft der Code weiter, leider habe ich kein MS SQL installiert |
AW: MS SQL Server mit alternativen Ports nutzen
Moin moin,
Zitat:
|
AW: MS SQL Server mit alternativen Ports nutzen
Habe ich versucht!
Der Port 1434 ist belegt....von meinem eigenen SQL-Serverbrowser. |
AW: MS SQL Server mit alternativen Ports nutzen
Also es fehlt mir wirklich, wie man vernünftig die anworten auf einen UDP Broadcast empfängt! Wenn es mehr als eine ist....
Hat einer ne Ahnung? Spammen funktioniert zwar, aber das kann es doch nicht sein. |
AW: MS SQL Server mit alternativen Ports nutzen
Zitat:
|
AW: MS SQL Server mit alternativen Ports nutzen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:29 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