AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi mysqld_s.pas : Datenbankverbindung zum embedded MySQL-Server
Thema durchsuchen
Ansicht
Themen-Optionen

mysqld_s.pas : Datenbankverbindung zum embedded MySQL-Server

Ein Thema von Mamphil · begonnen am 16. Sep 2004 · letzter Beitrag vom 29. Sep 2004
Antwort Antwort
Benutzerbild von Mamphil
Mamphil

Registriert seit: 17. Jul 2004
Ort: Garching b. München
149 Beiträge
 
Delphi 7 Professional
 
#1

Re: mysqld_s.pas : Datenbankverbindung zum embedded MySQL-Se

  Alt 16. Sep 2004, 18:33
Hi!

Dann werde ich mir mal selbst antworten:

Der Fehler kam daher, dass der embedded Datenbank-Server noch nicht initialisiert war. Das geht übrigens per:
Delphi-Quellcode:
var
  pf : string;
  erg : integer;
begin
  pf := ExtractFilePath(application.exename);
  pf := copy(pf,1,length(pf) -1);
  argv[0] := pchar('');
  argv[1] := pchar('--basedir='+pf);
  argv[2] := pchar('--datadir='+pf+'\mydata');
  argv[3] := pchar('--language='+pf);
  argv[4] := pchar('--skip-innodb'); //no innodb with embedded version
  erg := mysql_server_init(5,@argv,nil);
  if erg <> 0 then
  begin
    Showmessage('Can not initiate mysql-server');
  end
  else
    Showmessage('Server successfull initiated!');
end;
Nur der Vollständigkeit halber sei das folgende erwähnt:

Wenn beim initialisieren des Servers die Anwendung ohne einen Mucks abstürzt bzw. sich beendet, findet man im Verzeichnis unter datadir angegebenen Verzeichnis (im Beispiel der Ordner "mydata" innerhalb des Projektverzeichnisses) eine <computername>.err-Datei, die ein paar hilfreiche Fehlermeldungen enthält.

Ich bin noch über zwei weitere Hürden gestolpert: Natürlich müssen (wie in der readme.txt der mysqld_s.pas beschrieben) die Dateien libmySQLd.dll, errmsg.sys und errmsg.txt im Projektverzeichnis vorhanden sein (die mysqld_s.pas natürlich auch!). Diese Dateien bekommt man aus dem MySQL-Windows-Paket (das ohne Installer genügt). Die errmsg.*-Dateien finden sich zum Beispiel im Verzeichnis mysql-*.*.*-win\share\english und die dll-Datei in mysql-*.*.*-win\Embedded\DLL\release . Bei den Beispielen sind zwar schon die errmsg-Dateien dabei, selbige müssen aber zwingend ersetzt werden, da es sonst Versionskonflikte mit der DLL-Datei geben (kann), die auch nur in der .err-Datei als Fehlerquellen genannt werden.

Und dann klappt's auch mit dem embedded Server. Nur zum Schluss sollte noch per mysql_server_end; der embedded Server beendet werden.

(Ein letzter Tipp: das Tutorial MySQL ohne Komponenten erklärt, wie per mysql.pas auf einen MySQL-Server zugegriffen wird, der nicht embedded ist. Die Vorgehensweise ist bei der mysqld_s.pas aber mit der bei der mysql.pas identisch, bis auf das oben genannten mysql_server_init(...)

Mamphil
  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 17:01 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