Servus, ich hab heute versucht eine connection mit einem
mysql server herzustellen. Hierfür verwende ich die mysqllib.dll, kekapselt durch eine
mysql.pas
Mein code schaut wie folgt aus:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
mysql, StdCtrls;
type
TForm1 =
class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
_myCon: PMySQL;
//unseren Verbindungsdeskriptor
host, user, pass,
db: PAnsiChar;
//die Anmeldedaten
begin
//wir werden uns als Root-Benutzer in localhost einloggen, ohne eine
//bestimmte Datenbank auszuwählen
host := '
XX.XXX.XX.XX';
user := '
root';
pass := '
';
db := '
697_datenbank';
//jetzt wird _myCon initialisiert
_myCon := mysql_init(
nil);
if _myCon =
nil then
begin
ShowMessage('
Nicht genug freier Speicher, um Verbindungsdeskriptor zu initialisieren');
Exit;
end;
//anschließend wird die Verbindung hergestellt
if mysql_real_connect(_myCon, host, user, pass,
db, 3306,
nil, 0) =
nil then //HIER
begin
ShowMessage('
Die Verbindung konnte nicht hergestellt werden. Ursache: ' + mysql_error(_myCon));
Exit;
end;
ShowMessage('
Verbindung hergestellt');
//zum Schluss wird die Verbindung wieder geschlossen
mysql_close(_myCon);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
libmysql_fast_load(
nil);
end;
end.
In der markierten zeile bleibt er immer hängen, was mach ich falsch ? Ich benutzte Delphi 2009, falls das irgendwas mit der zeichenencodierung zu tun hat.
MfG - Ghost007
[edit=mkinzler]Code-Tag durch Delphi-Tag ersetzt Mfg, mkinzler[/edit]