![]() |
Datenbank: MySql 5 • Zugriff über: dbExpress
Probleme mit Delphi 2007 und MySql
Hallo Experten, ich habe Probleme beim Zugriff mit den SQLQuery-Componenten (dbExpress) aus Delphi 2007 auf einen MySql 5.0 Server. Konkret: Wenn ich ein Query aktiviere (mit open oder execSql), so wird zur Datenbank eine Connection aufgebaut, aber nicht wieder beendet (trotz close des Querys). Das führt dazu, dass mein Programm nach einiger Zeit keine Querys mehr ausführen kann. Meldung
Zitat:
Der Fehler lässt sich ganz leicht reproduzieren: Eine tSQLConnection, zwei tSQLQuerys und die dann per Button wechselweise anstoßen. Im MySQl-Administrator sieht man, wie die Anzahl der Verbindungen kontinuierlich ansteigt, bis bei 100 (default) Schluss ist. Hat jemand ne Idee? |
Re: Probleme mit Delphi 2007 und MySql
Hi,
das hört sich für mich an, als wenn bei Dir für jede Quey eine neue Connetion erstellt/vrwendet wird. Eigentlich sollte die Connection(immer nur eine) immer geöffnet seien und die beiden Querys benutzen diese. Schau Dir mal die Eigenschaft KeepConnection an, vielleicht steht die bei Dir auf false. Gruß DataCool |
Re: Probleme mit Delphi 2007 und MySql
Hallo DataCool,
vielen Dank für die Idee aber daran liegt's nicht. Man muss dazu noch wissen, dass es sich bei dem Projekt um ein Programm handelt, das vorher mit den dbExpress-Treibern der Firma CoreLab (unter Delphi 2006) einwandfrei gelaufen ist. Darum ist meine Vermutung eigentlich, dass da irgendwas mit den neuen Componenten von CodeGear nicht stimmt. Andereseits ist der Fehler so elementar, dass ich das auch wieder nicht glauben mag. Auszuprobieren mit (Auszug ist leicht gekürzt):
Delphi-Quellcode:
object SQLConnection1: TSQLConnection
ConnectionName = 'MySQLConnection' DriverName = 'MySQL' GetDriverFunc = 'getSQLDriverMYSQL' LibraryName = 'dbxmys30.dll' LoginPrompt = False Params.Strings = ( 'DriverName=MySQL' 'HostName=localhost' 'Database=welt' 'User_Name=root' 'Password=****' 'BlobSize=-1' 'ErrorResourceFile=' 'LocaleCode=0000' 'Compressed=False' 'Encrypted=False') VendorLib = 'libmysql.dll' end object SQLQuery1: TSQLQuery MaxBlobSize = -1 Params = <> SQL.Strings = ('select * from land;') SQLConnection = SQLConnection1 end object SQLQuery2: TSQLQuery MaxBlobSize = -1 Params = <> SQL.Strings = ('delete from land where kuerzel = '#39'xxx'#39';') SQLConnection = SQLConnection1 end } (*******************************************************************) procedure TForm1.Button1Click(Sender: TObject); begin sqlQuery1.Open; sqlQuery1.Close; end; procedure TForm1.Button2Click(Sender: TObject); begin sqlQuery2.ExecSQL; sqlQuery2.close; end; |
Re: Probleme mit Delphi 2007 und MySql
Ist die Version von dbExpress unter D2007 nicht 4?
|
Re: Probleme mit Delphi 2007 und MySql
Wenn sich die Frage auf dbxmys30.dll bezieht, so ist das die neue dll, die alte - so stehts in den Unterlagen - heißt jetzt dbxmys30A.dll. So wie die Parameter der Connection-Componente konfiguriert sind, entspricht es den orginal Vorgaben aus der dbxdriver.ini nach der Installation von CodeGear Delphi 2007.
|
Re: Probleme mit Delphi 2007 und MySql
Das gleiche Problem habe ich jetzt auch, wie wurde das ganze den jetzt gelöst das nicht bei jeder Abfrage eine neue
Verbindung/Session aufgemacht wird? ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:20 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 by Thomas Breitkreuz