Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi [MYSql] Kann nicht Connecten: Fehler: 湕湫&#30 (https://www.delphipraxis.net/130752-%5Bmysql%5D-kann-nicht-connecten-fehler-28245%3B-28267%3B-30-a.html)

sarte 12. Mär 2009 15:56

Datenbank: Mysql • Version: 5.0.41 • Zugriff über: mycon

[MYSql] Kann nicht Connecten: Fehler: 湕&#2826
 
Hallo Leute,
ich versuche über Delphi auf meine Mysql Datenbank zu zugreifen, jedoch kriege ich eine Fehlermeldung: Die Verbindung konnte nicht hergestellt werden. Ursache: 湕湫睯祍兓⁌敳癲牥栠獯⁴爧‧ㄨ〱㐰)
Laut google translator soll das: Qiushui湕pine祍兓⁌敳epilepsy獯⁴牥栠‧爧ㄨ 〱㐰) heißen. Ich verstehe immer noch nichts :D

Ich versuche ohne Komponenten rauf zukommen ( siehe: http://www.delphipraxis.net/internal...ect.php?t=7266)

Ich wollte den Beispielcode ausprobieren und es geht nicht. Vielleicht habe ich bei den Einstellungen etwas falsches.

Delphi-Quellcode:
var
  _myCon: PMySQL;      //unseren Verbindungsdeskriptor
  host, user, pass, db: PChar;      //die Anmeldedaten
begin
  //wir werden uns als Root-Benutzer in localhost einloggen, ohne eine
  //bestimmte Datenbank auszuwählen
  host := 'meindomain.de';
  user := 'sarte';
  pass := 'abcdefghijklmn';
  db := 'name meiner datenbank z.b. manitu';

  //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
  begin
    edit1.text := '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;
Mache ich da etwas falsches?
Bei PHP sieht es ja so aus: mysql_connect('localhost', 'sarte', 'password', '') und mysql_select_db('z.b. manitu')
Diesmal kann ich ja nicht localhost angeben...

Danke,
Sarte

zusätzliche Informationen:
ich mache das unter D2009 und meine Datenbank ist bei Evanzo...

TurboMartin 12. Mär 2009 15:59

Re: [MYSql] Kann nicht Connecten: Fehler: 湕&#
 
Erlaubt dein Hoster das Connecten von Außerhalb? Bei vielen Hostern ist das deaktiviert.

sarte 12. Mär 2009 16:01

Re: [MYSql] Kann nicht Connecten: Fehler: 湕&#
 
Du weißt nicht zufällig wie man das herausfindet?

Bernhard Geyer 12. Mär 2009 16:03

Re: [MYSql] Kann nicht Connecten: Fehler: 湕&#
 
Glaskugel auspack: Ich tipp mal darauf das die verwendete Unit nicht auf D2009 angepaßt ist und du jede menge Warnmeldungen bekommst die du auch korrigieren solltest. PChar hat eine andere Größe ab D2009 (2 Byte anstatt 1 Byte), so das deine Fehlermeldung irgendwas mit "unknown ..." ist.

sarte 12. Mär 2009 16:05

Re: [MYSql] Kann nicht Connecten: Fehler: 湕&#
 
Zitat:

Zitat von Bernhard Geyer
Glaskugel auspack: Ich tipp mal darauf das die verwendete Unit nicht auf D2009 angepaßt ist und du jede menge Warnmeldungen bekommst die du auch korrigieren solltest. PChar hat eine andere Größe ab D2009 (2 Byte anstatt 1 Byte), so das deine Fehlermeldung irgendwas mit "unknown ..." ist.

Delphi zeigt mir keine Warnmeldungen an, das würde ich sonst beim Strukturfenster sehen.

Bernhard Geyer 12. Mär 2009 16:14

Re: [MYSql] Kann nicht Connecten: Fehler: 湕&#
 
Zitat:

Zitat von sarte
Delphi zeigt mir keine Warnmeldungen an, das würde ich sonst beim Strukturfenster sehen.

Ok, hab nachgeschaut. Die DLL-Funktionsdefinitonen müssen alle angepaßt werden. Von PChar -> PAnsiChar.

Statt:
Delphi-Quellcode:
mysql_connect: function(_mysql: PMYSQL; const host, user, passwd: pChar): PMYSQL; stdcall;
muss es heißen:
Delphi-Quellcode:
mysql_connect: function(_mysql: PMYSQL; const host, user, passwd: pAnsiChar): PMYSQL; stdcall;
Dann statt:

Delphi-Quellcode:
  TMYSQL_FIELD = record
    name: pChar;             // Name of column
    table: pChar;            // Table of column if column was a field
    def: pChar;              // Default value (set by mysql_list_fields)
    _type: enum_field_types; // Type of field. Se mysql_com.h for types
    length: longword;        // Width of column
    max_length: longword;    // Max width of selected set
    flags: longword;         // Div flags
    decimals: longword;      // Number of decimals in field
  end;
muß es
Delphi-Quellcode:
  TMYSQL_FIELD = record
    name: pAnsiChar;             // Name of column
    table: pAnsiChar;            // Table of column if column was a field
    def: pChar;              // Default value (set by mysql_list_fields)
    _type: enum_field_types; // Type of field. Se mysql_com.h for types
    length: longword;        // Width of column
    max_length: longword;    // Max width of selected set
    flags: longword;         // Div flags
    decimals: longword;      // Number of decimals in field
  end;
etc, etc, ...

TurboMartin 12. Mär 2009 16:17

Re: [MYSql] Kann nicht Connecten: Fehler: 湕&#
 
Zitat:

Zitat von Bernhard Geyer
Zitat:

Zitat von sarte
Delphi zeigt mir keine Warnmeldungen an, das würde ich sonst beim Strukturfenster sehen.

Ok, hab nachgeschaut. Die DLL-Funktionsdefinitonen müssen alle angepaßt werden. Von PChar -> PAnsiChar.

Statt:
Delphi-Quellcode:
mysql_connect: function(_mysql: PMYSQL; const host, user, passwd: pChar): PMYSQL; stdcall;
muss es heißen:
Delphi-Quellcode:
mysql_connect: function(_mysql: PMYSQL; const host, user, passwd: pAnsiChar): PMYSQL; stdcall;
Dann statt:

Delphi-Quellcode:
  TMYSQL_FIELD = record
    name: pChar;             // Name of column
    table: pChar;            // Table of column if column was a field
    def: pChar;              // Default value (set by mysql_list_fields)
    _type: enum_field_types; // Type of field. Se mysql_com.h for types
    length: longword;        // Width of column
    max_length: longword;    // Max width of selected set
    flags: longword;         // Div flags
    decimals: longword;      // Number of decimals in field
  end;
muß es
Delphi-Quellcode:
  TMYSQL_FIELD = record
    name: pAnsiChar;             // Name of column
    table: pAnsiChar;            // Table of column if column was a field
    def: pChar;              // Default value (set by mysql_list_fields)
    _type: enum_field_types; // Type of field. Se mysql_com.h for types
    length: longword;        // Width of column
    max_length: longword;    // Max width of selected set
    flags: longword;         // Div flags
    decimals: longword;      // Number of decimals in field
  end;
etc, etc, ...

Kann es nicht sein dass er noch mit D7 programmiert?

Zitat:

Zitat von sarte
Du weißt nicht zufällig wie man das herausfindet?

Frag am besten beim Support nach, ob die es erlauben.

Bernhard Geyer 12. Mär 2009 16:22

Re: [MYSql] Kann nicht Connecten: Fehler: 湕&#
 
Zitat:

Zitat von TurboMartin
Kann es nicht sein dass er noch mit D7 programmiert?

Nö.
Zitat:

Zitat von sarte
zusätzliche Informationen:
ich mache das unter D2009 und meine Datenbank ist bei Evanzo...


sarte 12. Mär 2009 16:28

Re: [MYSql] Kann nicht Connecten: Fehler: 湕&#
 
Zitat:

Zitat von Bernhard Geyer
Von PChar -> PAnsiChar.

Ich habe jetzt alle pChar zu pAnsiChar ersetzt.
Ich kriege nur noch einen kleinen Fehler:

[DCC Fehler] mysql.pas(553): E2010 Inkompatible Typen: 'AnsiChar' und 'Char'

libmysql_handle := LoadLibrary(name);

Wie wandle ich um, bzw soll ich name in char lassen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz