AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi MS SQL Server mit alternativen Ports nutzen
Thema durchsuchen
Ansicht
Themen-Optionen

MS SQL Server mit alternativen Ports nutzen

Ein Thema von QuickAndDirty · begonnen am 12. Mär 2014 · letzter Beitrag vom 11. Apr 2014
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.782 Beiträge
 
Delphi 12 Athens
 
#1

AW: MS SQL Server mit alternativen Ports nutzen

  Alt 13. Mär 2014, 15:05
Irgendwie komme ich noch nicht dahinter, was du vorhast.

Im FireDAC ConnectionEditor kann man auf den Wizard-Button klicken, um sich eine Verbindung zusammenzubauen. Dabei wird für MSSQL der entsprechende ODBC-Dialog von Windows aufgerufen.

Soweit ich weiß sucht FireDAC selbst überhaupt nicht nach potentiellen SQL-Servern, sondern erwartet immer einen passenden Connection-String.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.059 Beiträge
 
Delphi 12 Athens
 
#2

AW: MS SQL Server mit alternativen Ports nutzen

  Alt 13. Mär 2014, 16:16
Irgendwie komme ich noch nicht dahinter, was du vorhast.
Ich hoffe es.

Soweit ich weiß sucht FireDAC selbst überhaupt nicht nach potentiellen SQL-Servern, sondern erwartet immer einen passenden Connection-String.
Es soll nicht suchen. Es soll zu der Instanz automatisch den Port finden.

Folgendes szenario:

Auf einem Server beim Kunden laufen 4 instanzen des MSSQL Servers. und eine instanz des SQL-Server-browsers.
Ich verwende folgenden string für den Server Parameter in Firedac.
Code:
SBS2003\EVALUATION
Der port der Instanz namens "EVALUATION" ist 2222.
Firedac scheint keine Verbindung mit diesen angaben aufzubauen. Obwohl der SQL-Server-browser aktiv ist.

Wenn ich den wert für den Server Parameter ändere in
Code:
tcp:SBS2003\EVALUATION,2222
verbindet sich Firedac.

Angeblich weiß der SQL-Server-Browser das "SBS2003\EVALUATION" auf 2222 lauscht.
Angeblich kann man SQL-Server-Browser danach fragen. "hey welchen Port hat die Instanz mit namen EVALUATION".

Wie geht das?
Ich brauche diese Information für ein Setup Programm.
Andreas
Nobody goes there anymore. It's too crowded!
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.782 Beiträge
 
Delphi 12 Athens
 
#3

AW: MS SQL Server mit alternativen Ports nutzen

  Alt 13. Mär 2014, 17:07
Lies mal hier - hilft vielleicht weiter.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.059 Beiträge
 
Delphi 12 Athens
 
#4

AW: MS SQL Server mit alternativen Ports nutzen

  Alt 14. Mär 2014, 09:08
Lies mal hier - hilft vielleicht weiter.
Danke, aber es fehlt immer noch ein bisschen.
Er hat halt fest gestellt was der SQL Server Browser macht.

Ich bin jetzt etwas verunsichert wer die Gegenstelle zur kommunikation mit dem
SQL Server Browser bildet. Ist es das tool oder der SQLNative client.
Wenn es der native client schon automatisch macht, dann müsste weder ich noch Firedac sich darum kümmern.

Das ganz versuche ich ja heraus zu bekommen weil,ein Kunde sich aufgeregt hat,
dass wir uns den Port nicht einfach über den SQL-Server-Browser besorgen,
statt ihn damit zu behelligen den Port selbst rauszufinden und anzugeben.

Wenn das also der native client bereits selbst macht, hat der Kunde den SQL-Server-Browser nicht eingeschalet gehabt.
Da ich aber nicht hoffe das er so blöd ist, könnte es vielleicht sein das ich den SQL-Server Browser selbst abfragen MUSS?
Andreas
Nobody goes there anymore. It's too crowded!

Geändert von QuickAndDirty (14. Mär 2014 um 09:11 Uhr)
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
542 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: MS SQL Server mit alternativen Ports nutzen

  Alt 14. Mär 2014, 09:51

Ich bin jetzt etwas verunsichert wer die Gegenstelle zur kommunikation mit dem
SQL Server Browser bildet. Ist es das tool oder der SQLNative client.
Wenn es der native client schon automatisch macht, dann müsste weder ich noch Firedac sich darum kümmern.
Meine Halbwissenerfahrung (in Verbindung mit den Devarts, MSSQL und nicht standard Ports):
Wenn der Nativeclient installiert ist muss ich den Devarts den Port nicht angeben ansonsten schon.

Wie allerdings der MS Nativeclient dies in Erfahrung bringt und wie die Devarts an die Info kommen weiss ich nicht.
Was ich weiss ist - Wir können uns nicht darauf verlassen dass der Kunde immer den Native Client on board hat.
Insofern muss bei bei uns beim Setup der Port manuell eingegeben werden wenn <> default.
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.782 Beiträge
 
Delphi 12 Athens
 
#6

AW: MS SQL Server mit alternativen Ports nutzen

  Alt 14. Mär 2014, 10:04
Wenn das also der native client bereits selbst macht, hat der Kunde den SQL-Server-Browser nicht eingeschalet gehabt.
Oder der Port für den SQL-Server-Browser wird von der Firewall nicht durchgelassen. Wenn du die Gelegenheit hast, mach doch beim Kunden mal diesen Test mit PortQuery. Dann weißt du wenigstens, ob es prinzipiell klappen sollte.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.013 Beiträge
 
Delphi 2009 Professional
 
#7

AW: MS SQL Server mit alternativen Ports nutzen

  Alt 1. Apr 2014, 12:07
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
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#8

AW: MS SQL Server mit alternativen Ports nutzen

  Alt 1. Apr 2014, 12:38
Moin moin,

... Wie empfange ich mit einem UDP Client korrect alle Antworten eines Broadcasts?...
Du brauchst mit dem Client doch nur einen Broadcast senden. Um die Antworten dann zu empfangen, kannst du doch einen Server auf dem Port lauschen lassen. Damit bekommst du dann wie gewollt die Antworten.
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#9

AW: MS SQL Server mit alternativen Ports nutzen

  Alt 14. Mär 2014, 11:05
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:
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;
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.

Eventuell hilfts dir ja weiter...
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.059 Beiträge
 
Delphi 12 Athens
 
#10

AW: MS SQL Server mit alternativen Ports nutzen

  Alt 14. Mär 2014, 12:03
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:
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;
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.

Eventuell hilfts dir ja weiter...
NICE!!!!!!!!!!!!!!!!!

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.
Andreas
Nobody goes there anymore. It's too crowded!

Geändert von QuickAndDirty (14. Mär 2014 um 12:22 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz