AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi FireDAC FDConnetion bekommt mit Delphi 11.2 keine Verbindung
Thema durchsuchen
Ansicht
Themen-Optionen

FireDAC FDConnetion bekommt mit Delphi 11.2 keine Verbindung

Ein Thema von juergen · begonnen am 24. Feb 2023 · letzter Beitrag vom 25. Feb 2023
Antwort Antwort
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.176 Beiträge
 
Delphi 11 Alexandria
 
#1

FireDAC FDConnetion bekommt mit Delphi 11.2 keine Verbindung

  Alt 24. Feb 2023, 15:50
Datenbank: MSSQL • Version: 2019 • Zugriff über: FireDAC MSSQL
Hallo zusammen,

Delphi 11.2., letztes Patch installiert.
ich suche nun schon eine ganze Weile und kann das Problem nicht lokalisieren.
Ich habe eine VM unter der 3 benamte MSSQL-Instanzen laufen (einmal für MSSQL 2016 Server, einmal für MSSQL 2017 Server und einmal für MSSQL 2019 Server).
Wenn ich mit Delphi 10.3.3 Enterprise eine Anwendung erzeuge, bekommt diese sofort über DM.FDConnection1.Connected := True; eine Verbindung zur MSSQL-Datenbank aufgebaut.
Nehme ich den exakt selben Source und kompiliere den mit Delphi 11.2 Enterprise ist eine Verbindung zur Datenbank nicht möglich.
Ist dann die allseits bekannte Fehlermeldung:
Zitat:
...[Phys][ODBC][Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben
Laut Versionierungssystem sind keine relevanten Unterschiede (in den Pas-Dateien gar keine Unterschiede, in den dfm_Dateien nur vernachlässigbare Unterschiede) zwischen Delphi 10.3.3 und Delphi 11.2.

Ich verwende natürlich den korrekten Instanznamen. Beide Delphi-Programme (von 10.3.3 und von 11.2) nutzen die selbe JSon-Datei wo die Datenbankparameter drin stehen...

Nehme ich das mit Delphi 11.2 erstellte Programm und führe das auf einem **anderen** Server aus wo nur eine nicht benamte MSSQL-Instanz läuft, funktioniert es auch mit dem mit Delphi 11.2 erstellten Programm!

Momentan bin ich ratlos was das sein kann.
Ich habe viel gelesen aber nichts relevantes gefunden.

Hat hier jemand eine Idee was das sein kann?
Vielen Dank schon mal vorab.

Nachtrag: Ich bin mir sicher, dass es nicht an meinem Code liegt. Auch im Designer bekomme ich über den Verbindungseditor von FDConnection keine Verbindung unter Delphi 11.2 hergestellt. Da kann man doch eigentlich nicht viel verkehrt machen...
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)

Geändert von juergen (24. Feb 2023 um 16:00 Uhr) Grund: Siehe Nachtrag
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.176 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: FireDAC FDConnetion bekommt mit Delphi 11.2 keine Verbindung

  Alt 24. Feb 2023, 18:12
So, hab's gefunden.
Laut FireDAC-Doku muss die M$ ODBC 13er Version verwendet werden.
Bei mir war M$ ODBC 13 und M$ ODBC 17 installiert. Nachdem ich den M$ ODBC 17 deinstalliert hatte und auch neu gebootet hatte, funktioniert nun der Verbindungsaufbau!
Ich muss jetzt mal schauen ob ich noch was finden kann, warum mit Delphi 11 und FireDAC für MSSQL anscheinend andere Voraussetzungen gelten.
Getreu dem Motto: Höhere Version = bessere und aktuellere Version, hätte ich jetzt auch eher erwartet, dass die MSSQL-ODBC-18er Version von FireDAC unterstützt wird.
Jürgen
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.010 Beiträge
 
Delphi 2009 Professional
 
#3

AW: FireDAC FDConnetion bekommt mit Delphi 11.2 keine Verbindung

  Alt 24. Feb 2023, 18:42
Laut FireDAC-Doku muss die M$ ODBC 13er Version verwendet werden.
Diese DocWiki-Seite gilt für Delphi 10.3 (Rio) von 2018, eventuell hat sich in den Jahren danach etwas geändert ...

Ach nein, die aktuelle DocWiki-Seite gibt immer noch 13 an:

https://docwiki.embarcadero.com/RADS...erver_(FireDAC)

Könnte es sein, dass die Seite nicht mehr aktualisiert wurde?

Ich würde beherzt den ODBC 13 Treiber deinstallieren, und es mit 17 versuchen.
Michael Justin

Geändert von mjustin (24. Feb 2023 um 18:49 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.176 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: FireDAC FDConnetion bekommt mit Delphi 11.2 keine Verbindung

  Alt 24. Feb 2023, 19:17
Sorry, für den falschen Link, ich hatte aber auch beide Versionen nachgeschaut,. Sehen für mich gleich aus.
Und es scheint wohl auch seinen Grund zu haben.
Meine Voraussetzungen:
Installierte MSSQL 2016, 2017 und 219er Version. Also 3 benamte Instanzen. Rechner immer neu gebootet.

Meine Tests:
MS ODBC 18 -> FireDAC funktioniert nicht
MS ODBC 17 -> FireDAC funktioniert nicht
MS ODBC 13 -> FireDAC funktioniert

Wenn mehrere MS ODBC-Treiber installiert sind, funktioniert FireDAC bei mir auch nicht.
Fakt ist aber, dass mit Delphi 10.3.1 oder 10.3.3. erstellte Programme funktionieren, auch wenn MS ODBC 17 und MS ODBC 13 installiert waren. Für mich hat Delphi 11.x damit ein anderes Verhalten.
Was genau das für mich nun bedeutet, kann ich noch gar nicht sagen, weil ich nicht weiß welche Kombinationen von MS ODBC-Treibern ich so vorfinde in der Praxis.
Bisher hatte "das einfach so" funktioniert mit FireDAC und Delphi 10.3


Nachtrag:
Als FireDAC-Treiber verwende ich bei MSSQL den FDPhysMSSQLDriverLink
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)

Geändert von juergen (24. Feb 2023 um 19:21 Uhr) Grund: siehe Nachtrag
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: FireDAC FDConnetion bekommt mit Delphi 11.2 keine Verbindung

  Alt 24. Feb 2023, 20:07
Komisch. In der What's New für 11.2 steht:
Zitat:
FireDAC supports the latest Microsoft ODBC Driver for SQL Server (version 18).
Dementsprechend haben die 11.2 Sourcen auch dies hier drin:
Delphi-Quellcode:
const
  C_2018_ODBC = 'ODBC DRIVER 18 FOR SQL SERVER';
  C_2017_ODBC = 'ODBC DRIVER 17 FOR SQL SERVER';
  C_2016_ODBC = 'ODBC DRIVER 13 FOR SQL SERVER';
  C_2012_ODBC = 'ODBC DRIVER 11 FOR SQL SERVER';
...
  C_2012_NC = 'SQL SERVER NATIVE CLIENT 11.0';
  C_2008 = 'SQL SERVER NATIVE CLIENT 10.0';
  C_2005 = 'SQL NATIVE CLIENT';
  C_2000 = 'SQL SERVER';

...

procedure TFDPhysMSSQLDriver.InternalLoad;
begin
  inherited InternalLoad;
  if ODBCDriver = 'then
    ODBCDriver := FindBestDriver(
      {$IFDEF MSWINDOWS} [C_2018_ODBC, C_2017_ODBC, C_2012_NC, C_2016_ODBC, C_2012_ODBC, C_2008, C_2005, C_2000] {$ENDIF}
      {$IFDEF POSIX} [C_2018_ODBC, C_2017_ODBC, C_2016_ODBC, C_2012_ODBC, C_FreeTDS], C_FreeTDSLib {$ENDIF}
    );
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.176 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: FireDAC FDConnetion bekommt mit Delphi 11.2 keine Verbindung

  Alt 24. Feb 2023, 21:00
Vielen Dank Uwe für die Infos!
Dadurch konnte ich sehen, dass in Delphi 10.3.x die Reihenfolge der bevorzugten Treiber anders war und ich deshalb anscheinend vorher nie diese Probleme hatte.
Delphi-Quellcode:
//Delphi 10.3.3
...
C_2012_NC = 'SQL SERVER NATIVE CLIENT 11.0';
...
procedure TFDPhysMSSQLDriver.InternalLoad;
begin
  inherited InternalLoad;
  if ODBCDriver = 'then
    ODBCDriver := FindBestDriver(
      {$IFDEF MSWINDOWS} [C_2012_NC, C_2016_ODBC, C_2012_ODBC, C_2017_ODBC, C_2008, C_2005, C_2000] {$ENDIF}
      {$IFDEF POSIX} [C_2016_ODBC, C_2012_ODBC, C_2017_ODBC, C_FreeTDS], C_FreeTDSLib {$ENDIF}
    );
end;
So wie ich das verstehe, zieht FireDAC bei mir den SQL SERVER NATIVE CLIENT, wenn ich nur den MS ODBC-Treiber 13 installiert habe.
Dann wäre die Frage bei mir: Warum funktioniert FireDAC bei *meiner Konstellation* nicht mit installiertem MS ODBC 17 oder 18?

Nachtrag: Meine (Test)-Datenbank läuft unter MSSQL 2016 und ist auch in diesem Kompatibilitäsgrad. (SQL Server 2016 (130)
Aber wie geschrieben funktioniert es bei meiner Konstellation nicht mit MS ODBC 17 oder MS ODBC 18.
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)

Geändert von juergen (24. Feb 2023 um 21:30 Uhr) Grund: siehe Nachtrag
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:10 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