![]() |
Re: MySQL ohne Komponenten
Delphi-Quellcode:
begin
var1 := 'test1'; var2 := 'test2'; host := 'server'; user := 'root'; pass := '*****'; db := 'db' ; _myCon := mysql_init(nil); if _myCon = nil then begin ShowMessage('Nicht genug freier Speicher, um Verbindungsdeskriptor zu initialisieren'); Exit; end; if mysql_real_connect(_myCon, host, user, pass, db, 3306, nil, 0) = nil then begin ShowMessage('Die Verbindung konnte nicht hergestellt werden. Ursache: ' + mysql_error(_myCon)); Exit; end; query := 'INSERT INTO tabelle (NAME, TEXT) VALUES ('+PChar(QuotedStr(var1))+','+PChar(QuotedStr(var1))+')'; mysql_real_query(_myCon, query , Length(query)); mysql_close(_myCon); end; |
Re: MySQL ohne Komponenten
Delphi-Quellcode:
mysql_real_query(_myCon, PChar(query) , Length(query));
|
Re: MySQL ohne Komponenten
der fehler bleibt
|
Re: MySQL ohne Komponenten
Was für einen Typ hat query?
|
Re: MySQL ohne Komponenten
pchar
Delphi-Quellcode:
so das sind die variablen
var
_myCon: PMySQL; query: PChar; var1, var2 : pchar; //wechsel ich immer zwischen PChar und String host, user, pass, db: PChar; |
Re: MySQL ohne Komponenten
Ändere den Typ mal in String und dann:
Delphi-Quellcode:
query := 'INSERT INTO tabelle (NAME, TEXT) VALUES ('+QuotedStr(var1)+','+QuotedStr(var2)+')';
mysql_real_query(_myCon, PChar(query) , Length(query)); |
Re: MySQL ohne Komponenten
oh verdammt!! das hätte ich auch selber sehen können!!
Es funktioniert!! VIELEN VIELEN DANK!!!! Super HILFE! |
Re: MySQL ohne Komponenten
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab jetzt folgenden Code:
Delphi-Quellcode:
Aber wenn ich dann die Ergebnisse abrufen will, bekomme ich nur eine Fehlermeldung, dass eine Zugriffsverletzung vorliegt. :( (siehe Anhang)
procedure TForm1.BtVTPClick(Sender: TObject);
var _myCon: PMySQL; //unseren Verbindungsdeskriptor host, user, pass, db: PChar; //die Anmeldedaten Posts: TPostEntries; idAuthor: String; //zum Zwischenspeichern der Verfasser-ID query: PChar; _myRes: PMySQL_Res; //hier wird der gesamte Ergebnissatz gespeichert _mySubRes: PMySQL_Res; //benötigt, um Autor zu ermmitteln _myRow: PMySQL_Row; //enthält den aktuellen Datensatz _mySubRow: PMySQL_Row; //benötigt, um Autor zu ermmitteln i: Integer; begin //wir werden uns als Root-Benutzer in localhost einloggen, ohne eine //bestimmte Datenbank auszuwählen host := 'localhost'; user := 'root'; pass := 'XXXXX'; db := 'APITest'; //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 ShowMessage('Die Verbindung konnte nicht hergestellt werden. Ursache: ' + mysql_error(_myCon)); Exit; end; ShowMessage('Verbindung hergestellt'); query := 'SELECT * FROM posts ORDER BY id'; mysql_real_query(_myCon, query, Length(query)); _myRes := mysql_store_result(_myCon); //alle Datensätze vom Server anfordern if _myRes = nil then begin ShowMessage('Es konnten keine Datensätze zurückgebenen werden. Ursache: ' + mysql_error(_myCon)); Exit; end; SetLength(Posts, mysql_num_rows(_myRes)); //Posts-Array-Größe auf Anzahl der Datensätze setzen for i := 0 to High(Posts) do begin _myRow := mysql_fetch_row(_myRes); //Datensatz abholen Posts[i].id := StrToInt(_myRow[0]); //ID des Posts ist erstes Feld im Datensatz Posts[i].time := _myRow[2]; //Zeitpunkt ist drittes Feld Posts[i].text := _myRow[3]; //Text ist viertes Feld idAuthor := _myRow[1]; query := PChar('SELECT name FROM users WHERE id=' + idAuthor); _mySubRes := mysql_store_result(_myCon); _mySubRow := mysql_fetch_row(_mySubRes); Posts[i].author := _mySubRow[0]; mysql_free_result(_mySubRes); //Ergebnissatz löschen end; mysql_free_result(_myRes); //Ergebnissätze löschen //zum Schluss wird die Verbindung wieder geschlossen mysql_close(_myCon); end; Woran liegt das? :( |
Re: MySQL ohne Komponenten
Welche Version von MySQL?
|
Re: MySQL ohne Komponenten
Server Version: 5.0.18-nt
Isses das? Wenn nich, ma eben schnell bescheidsagen. ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:35 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