Thema: Delphi MySQL ohne Komponenten

Einzelnen Beitrag anzeigen

Benutzerbild von Stony2k
Stony2k

Registriert seit: 21. Mai 2005
Ort: Moers
76 Beiträge
 
Delphi 7 Enterprise
 
#114

Re: MySQL ohne Komponenten

  Alt 17. Jan 2006, 14:33
Ich habe gemäß dem Tut hier einen Button mit folgendem Inhalt erstellt:

Delphi-Quellcode:
procedure Tfrm_main.SelectClick(Sender: TObject);
var
  Posts: TPostEntries;
  //idAuthor: String; //zum Zwischenspeichern der Verfasser-ID
  query: PChar;
  _myCon: PMySQL;
  _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
 
  {...}
  {Verbindung herstellen wie in Kap. 1 beschrieben}
 
  query := 'SELECT * FROM pw_change ORDER BY account';
  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].account := _myRow[0]; //ID des Posts ist erstes Feld im Datensatz
    Posts[i].passwort := _myRow[1]; //Zeitpunkt ist drittes Feld

    {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

  {...}
  {Verbindung schließen oder etwas anderes machen}
end;
Ich verbinde erst zur DB mit den Codezielen aus diesem Tut. Nachdem Showmessage mir sagt, ich habe erfolgreich verbunden, drücke ich den Button.. und dann friert das Programm ein.

Kann mir wer sagen, was ich falsch mache?
  Mit Zitat antworten Zitat