Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Kein Connect zu MySQL-DB zur Runtime (https://www.delphipraxis.net/188925-kein-connect-zu-mysql-db-zur-runtime.html)

Captnemo 20. Apr 2016 14:19

Datenbank: MySQL • Version: 5.6 • Zugriff über: SQLDirect

Kein Connect zu MySQL-DB zur Runtime
 
Hi,

ich versuche mit folgendem Code einen Connect zu einer MySQL-DB aufzubauen. Klappt aber nicht, und es kommt auch keine Fehlermeldung.
Baue ich die Verbindung über die OI mit exakt den gleichen Parametern auf, kann ich problemlos connecten. Hat irgendwer eine Idee, woran das liegen könnte?

Code:
  sdtbs1.LoginPrompt := False;
  sdtbs1.ServerType := stMySQL;
  sdtbs1.SessionName := 'Default';
  sdtbs1.DatabaseName := 'GMManuell';
  sdtbs1.Params.Clear;
  sdtbs1.Params.Add('USER NAME='+dbuser);
  sdtbs1.Params.Add('PASSWORD='+dbpass);
  sdtbs1.RemoteDatabase := dbhost+':gm';
  sdtbs1.Connected:=True;
  ShowMessage('Connected: '+BoolToStr(sdtbs1.Connected, True));
mit dem gleichen Code mache ich das in einem Dienst, wo der connect problemlos klappt.
Der einzige Unterschied ist, dass ich im Dienst die das Databaseobject selber erzeugen und im Programm halt auf der Form zu liegen habe.
Aber da es in der anderen Anwendung funktioniert, muss es ja an mir liegen.

Bernhard Geyer 20. Apr 2016 14:26

AW: Kein Connect zu MySQL-DB zur Runtime
 
MySQL - Hast du evtl. mehrer inkompatible mysqllib.dll auf deinem System installiert?

baumina 20. Apr 2016 14:48

AW: Kein Connect zu MySQL-DB zur Runtime
 
Irgendwie habe ich das Gefühl, dass da der hostname fehlt.

Captnemo 21. Apr 2016 09:04

AW: Kein Connect zu MySQL-DB zur Runtime
 
Zitat:

Zitat von baumina (Beitrag 1336111)
Irgendwie habe ich das Gefühl, dass da der hostname fehlt.

Hostname wird bei SQLDirect in RemoteDatabase angegeben: Host:Database z.b. '192.168.0.10:test'. Die IP wird auch korrekt in RemoteDatabase eingetragen.

Zitat:

Zitat von Bernhard Geyer (Beitrag 1336109)
MySQL - Hast du evtl. mehrer inkompatible mysqllib.dll auf deinem System installiert?

Liegt in c:\Windows\System32, heißt alle Programm greifen auf die gleichen DLL's zu. Wie gesagt, bei einem anderen Projekt mit exakt den gleichen Parametern auf den gleichen Rechner läuft problemlos, auch beim Kunden. Irgendwie raff ich nicht, wo der Fehler liegen könnte. GetLastOSError liefert "Der Vorgang wurde erfolgreich beendet". Wo bei ich nicht weiß, ob sich diese Aussage auf meinen Connect-Versuch bezieht.
Interessanterweise für LoginPrompt:=True nicht dazu, dass ein Loginprompt kommt, sondern auch zu oben genannten Effect: schlicht kein Connect ohne Fehlermeldung.

Sir Rufo 21. Apr 2016 09:08

AW: Kein Connect zu MySQL-DB zur Runtime
 
Manchmal liegt es auch an der Reihenfolge.

Pauschal würde ich das Leeren der Parameter an den Anfang setzen und dann all Eigenschaften bestücken.

Captnemo 21. Apr 2016 09:13

AW: Kein Connect zu MySQL-DB zur Runtime
 
Ich habe grad mal ausprobiert, wenn ich alle Einstellungen der TSDDatabase im OI setze, kann ich dort manuell Verbinden.

Wenn ich nun alle im Code vorhandenen DB-Operationen auskommentiere (Parametersetzen und Connect), also nur die Einstellungen nutze die ich im OI gemacht habe, und dann die Anwendung starte, bin ich wieder disconnected.

@SirRufo: Das probiere ich gleich noch mal aus.

p80286 21. Apr 2016 09:45

AW: Kein Connect zu MySQL-DB zur Runtime
 
Zitat:

Zitat von Captnemo (Beitrag 1336190)
Interessanterweise für LoginPrompt:=True nicht dazu, dass ein Loginprompt kommt, sondern auch zu oben genannten Effect: schlicht kein Connect ohne Fehlermeldung.

Irgendwann in der fernen Delphi-Historie gab es da mal eine Änderung im Verhalten. Vorher kam der Login-Promt automatisch, dann mußte er per Hand/Programm aufgerufen werden. Ist aber von Komponente zu Komponente unterschiedlich soweit ich weiß.

Gruß
K-H

Captnemo 22. Apr 2016 11:14

AW: Kein Connect zu MySQL-DB zur Runtime
 
Es geht jetzt. Was am Ende dieses Verhalten hervorgerufen hat, kann ich euch nicht sagen.
Nachdem auch das Entfernen der Komponente und aller Verweise, und komplettes neuimplementieren der Komponente auch nichts brachte, habe ich das Projekt (ist noch ganz frisch) komplett neu aufgesetzt, schnell die Prozeduren und Funktionen neu erstellt, und den Quellcode aus dem nicht funktionierenden Projekt reinkopiert. Und schwups lief es.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:54 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