Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Probleme mit Delphi 2007 und MySql (https://www.delphipraxis.net/91905-probleme-mit-delphi-2007-und-mysql.html)

rioja 11. Mai 2007 18:39

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:

too many connections..
.
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?

DataCool 13. Mai 2007 19:59

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

rioja 14. Mai 2007 20:11

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;

mkinzler 14. Mai 2007 20:14

Re: Probleme mit Delphi 2007 und MySql
 
Ist die Version von dbExpress unter D2007 nicht 4?

rioja 16. Mai 2007 19:39

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.

TUX_der_Pinguin 11. Feb 2008 14:51

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?

Link zu meinem Beitrag


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