unit MySQLTest;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
mySQL, StdCtrls, Menus;
type
TForm1 =
class(TForm)
grbConnect: TGroupBox;
btConnect: TButton;
edHost: TEdit;
edUser: TEdit;
edPassw: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
edDB: TEdit;
Label4: TLabel;
PopupMenu1: TPopupMenu;
localhost1: TMenuItem;
procedure btConnectClick(Sender: TObject);
procedure localhost1Click(Sender: TObject);
procedure MakeTables(_myCon: PMySQL);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btConnectClick(Sender: TObject);
var
_myCon: PMySQL;
//unseren Verbindungsdeskriptor
host, user, pass,
db: PChar;
//die Anmeldedaten
query: PChar;
begin
//Aufnehmen der Anmeldedaten
host := pchar(edHost.Text);
user := pchar(edUser.Text);
pass := pchar(edPassw.Text);
db := pchar(edDB.Text);
//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');
if MessageDlg('
Soll eine neue Datenbank angelegt werden?',
mtConfirmation, [mbYes, mbNo], 0) = mrYes
then begin
query := '
CREATE DATABASE apitest';
mysql_real_query(_myCon,
query, Length(
query));
end;
if MessageDlg('
Neue Tabellen anlegen?',
mtConfirmation, [mbYes, mbNo], 0) = mrYes
then
MakeTables(_myCon)
end;
procedure TForm1.MakeTables(_myCon: PMySQL);
var
query: PChar;
begin
mysql_select_db(_myCon, '
apitest');
//zu Datenbank "APITest" wechseln
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.localhost1Click(Sender: TObject);
begin
edHost.Text := '
localhost';
edUser.Text := '
root';
edPassw.Text := '
jazzy';
end;
end.