![]() |
MySQL-API will nicht die 1.
Hi,
folgender Source:
Delphi-Quellcode:
Wenn ich jetzt aber compiliere, dann läuft das, aber wenn ich auf den Button klicke, dann kommt eine AV und das Programm wird an der Zeile
var
_Query: String; _connecter: PMYSQL; begin _connecter.host := PChar(sDBHost); _connecter.user := PChar(sDBUser); _connecter.passwd := PChar(sDBPass); _connecter := mysql_connect(_connecter, PChar(sDBHost), PChar(sDBUser), PChar(sDBPass)); mysql_select_db(_connecter, 'chrishde'); _Query := 'SELECT * FROM members WHERE charUsername LIKE '''+LabeledEdit1.Text+''' AND charPassword LIKE '''+LabeledEdit2.Text+''';'; if mysql_query(_connecter, @_Query[1]) <> 0 then begin MessageDlg('Fehler beim senden einer MySQL-Abfrage', mtError, [mbOK], 0); Exit; end; if mysql_num_rows(mysql_store_result(_connecter)) = 1 then ShowMessage('Right!'); mysql_close(_connecter); end;
Delphi-Quellcode:
angehalten.
_connecter.host := PChar(sDBHost);
Ich nutze die MySQL-API, die auch beim MySQL-Server dabei ist. Hat jemand eine Idee/Lösung? Chris |
Ich benutze immer die mysql_real_xxx - Funktionen. Dann rufe ich vorher die Funktion
![]() Laut Doku ist mysql_connect() ja veraltet. |
Hm... habe das ganze mal geändert:
Delphi-Quellcode:
Allerdings wird das Programm mit einer einfachen AV gestoppt. Allerdings wird keine Zeile makiert. Hast du da noch eine Idee?
procedure TMainFrm.dxButton1Click(Sender: TObject);
var _Query: String; _connecter: PMYSQL; begin _connecter.host := PChar(sDBHost); _connecter.user := PChar(sDBUser); _connecter.passwd := PChar(sDBPass); mysql_init(_connecter); mysql_select_db(_connecter, 'chrishde'); _Query := 'SELECT * FROM members WHERE charUsername LIKE '''+LabeledEdit1.Text+''' AND charPassword LIKE '''+LabeledEdit2.Text+''';'; if mysql_real_query(_connecter, PChar(_Query), 1024) <> 0 then begin MessageDlg('Fehler beim senden einer MySQL-Abfrage', mtError, [mbOK], 0); Exit; end; if mysql_num_rows(mysql_store_result(_connecter)) = 1 then ShowMessage('Right!'); mysql_close(_connecter); end; Chris |
Öhm, 1. muss der Aufruf mysql_init() vor den Zuweisungen an _connecter erfolgen und 2. Wo ist dein mysql_connect() bzw. mysql_real_connect()?
|
Am besten postest du mal ein Beispiel... Wäre besser, vielleicht verstehe ich dann, was ich machen soll...
Chris |
Dazu bin ich jetzt auch noch ratlos: denn ich habe gerade das Beispielprojekt heruntergeladen, allerdings passiert genau das gleiche: Beim Verbinden mit dem MySQL-Server gibt's 'ne saftige AccessViolation!
Welche Version nutzt du, Chewie? Funktioniert bei dir alles problemlos? Chris PS: Beispiel trotzdem erwünscht. ;) |
Problem gelöst!
So, denn die Version, die ich genutzt habe von libmySQL.dll hat nicht funktioniert. Nachdem ich dann die DLL aus meinem MySQL-Verzeichnis kopiert habe, ging es dann. Na dann ma los an die Arbeit. ;) Chris PS: @Chewie: Allerdings könnte ich immernoch ein Beispiel vertragen. :roll: |
Zitat:
|
So, mit frisch geduschtem und klaren Kopf gehts los:
Delphi-Quellcode:
Ich habs jetzt nicht getestet, aber so sollte es gehen.
var
_connector: PMySQL; sqlresult: PMySQL_Res; sqlrow: PMySQL_Row; Host, Login, Password, Query: PChar; begin //Parameter festlegen Host := 'localhost'; Login := 'root'; Password := nil; //Zugangskennung initialisieren _connector := mysql_init(nil); //Verbindung herstellen _connector := mysql_real_connect(_connector,Host,Login,Password,nil,3306,nil,0); if _connector = nil then begin WriteLn('Die Verbindung ist fehlgeschlagen'); Exit; end; //aktuelles Datum abrufen Query := 'SELECT DAYOFMONTH(NOW()),MONTH(NOW()),YEAR(NOW())'; mysql_real_query(_connector,Query,Length(Query)); sqlresult := mysql_store_result(_connector); sqlrow := mysql_fetch_row(sqlresult); WriteLn('Tag',sqlrow[0]); WriteLn('Monat',sqlrow[1]); WriteLn('Jahr',sqlrow[2]); //Ergebniskennung freigeben und Verbindung schließen mysql_free_result(sqlresult); mysql_close(_connector); end. Ach ja, das hier muss in einem Konsolenprogramm stehen. Edit: OK, zwei kleinere Fehler waren drin :oops: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:22 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