Einzelnen Beitrag anzeigen

ottixus

Registriert seit: 7. Okt 2010
1 Beiträge
 
#1

Verbindungsprobleme mit dbExpress und MySQL

  Alt 19. Jun 2012, 13:47
Datenbank: MySQL • Version: 5.1.41 • Zugriff über: dbExpress
Hallo,

ich bin dabei eine Delphi2005-Anwendung auf Delphi2012 umzustellen.

In der Delphi2005-Anwendung wurde direkt mit den Befehlen der MySQL-Bibliothek gearbeitet unter Benutzung der mysql.pas von http://www.audio-data.de/mysql.html

Bei der Umstellung habe ich einerseits die Datenbankzugriffe von den direkten mysql-Befehlen (z.B. mysql_num_rows, mysql_real_query) auf dbExpress-Komponenten umgestellt.
Ich nutze eine TSQLConnection und TSQLQuery - Komponenten.

Der Verbindungsaufbau und reine Routine-Abfragen klappen auch.
Jedoch bekomme ich Probleme, wenn sehr viele Abfragen hintereinander abgearbeitet werden sollen (ca. 30000 Queries).
Das Programm steigt dann nach einer Weile mit der Meldung "Can't connect to MySQL server on localhost (10048)" aus.
Eine Verbindung zum MySQL-Server bestand allerdings vorhin. Die SQL-Statements sind auch in Ordnung. Diese kann ich problemlose auf der Kommandozeile ausführen.
Solche Probleme hatte ich vorher in der Delphi2005-Umgebung unter der Nutzung der mysql.pas nicht.
Weiß jemand von euch, warum zwischendurch einfach der Datenbankzugriff verloren geht?
Die Option KeepConnection wurde gesetzt.

Die Datenbankverbindung wird folgendermaßen erzeugt:
Delphi-Quellcode:
  self.SQLConnectionMySQL := TSQLConnection.Create(self);
  self.SQLConnectionMySQL.DriverName := 'MySQL';
  self.SQLConnectionMySQL.GetDriverFunc := 'getSQLDriverMYSQL';
  self.SQLConnectionMySQL.LibraryName := 'mysqllib_32bit\dbxmys.dll';
  self.SQLConnectionMySQL.VendorLib := 'mysqllib_32bit\LIBMYSQL.dll';

  self.SQLConnectionMySQL.Params.Values['BlobSize'] := '-1';
  self.SQLConnectionMySQL.Params.Values['Database'] := 'db';
  self.SQLConnectionMySQL.Params.Values['ErrorRessourceFile'] := '';
  self.SQLConnectionMySQL.Params.Values['HostName'] := mysql_host;
  self.SQLConnectionMySQL.Params.Values['LocaleCode'] := '0000';
  self.SQLConnectionMySQL.Params.Values['User_Name'] := mysql_user;
  self.SQLConnectionMySQL.Params.Values['Password'] := mysql_password;
  self.SQLConnectionMySQL.Params.Values['Compressed'] := 'False';
  self.SQLConnectionMySQL.Params.Values['Encrypted'] := 'False';


  self.SQLConnectionMySQL.LoginPrompt := False;
  self.SQLConnectionMySQL.KeepConnection := True;
  self.SQLConnectionMySQL.Open;


Viele Grüße,

ottixus
  Mit Zitat antworten Zitat