unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
mySQL,
StdCtrls;
type
TForm1 = class(TForm)
B_Verbinden: TButton;
Memo1: TMemo;
procedure B_VerbindenClick(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
type
TPostEntry = record
id: Integer;
gruppe: String[50];
end;
TPostEntries = Array[0..1] of TPostEntry;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure MakeTables(_myCon: PMySQL);
var
query: PChar;
begin
mysql_real_query(_myCon, 'CREATE TABLE posts(id int, author int, date datetime, entry text)', Length(
query));
mysql_real_query(_myCon, 'CREATE TABLE users(id int, name varchar(50), pass varchar(50))', Length(
query));
end;
procedure TForm1.B_VerbindenClick(Sender: TObject);
var
Posts: TPostEntries;
_myCon: PMySQL;
query, host, user, pass,
db: PChar;
idAuthor: String; //zum Zwischenspeichern der Verfasser-ID
_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
host := 'fs02';
user := 'daniel';
pass := 'daniel';
db := 'Daniel';
memo1.text := '';
_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 gruppen 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;
for i := 0 to 1 do
begin
_myRow := mysql_fetch_row(_myRes); //Datensatz abholen
//Posts[i].id := InttoStr(_myRow[0]); //ID des Posts ist erstes Feld im Datensatz
Posts[i].gruppe := _myRow[1]; //Zeitpunkt ist drittes 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];}
memo1.Text := memo1.text + ' ' + Posts[i].gruppe;
mysql_free_result(_mySubRes); //Ergebnissatz löschen
end;
//zum Schluss wird die Verbindung wieder geschlossen
mysql_close(_myCon);
end;
end.