Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MYSQL Problem mit Create Table (https://www.delphipraxis.net/16426-mysql-problem-mit-create-table.html)

Synonym 16. Feb 2004 21:52


MYSQL Problem mit Create Table
 
Hi,


ich benutze den MYSQL Code aus dem Tutorial...

Hier mein Code...
Doch leider erstellt er nicht wie beschrieben 2 Tabellen!

Was kann ich tun?

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,mysql,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure MakeTables(_myCon: PMySQL);
var
  query: PChar;
begin
  mysql_select_db(_myCon, 'usr_web_2');    //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.Button1Click(Sender: TObject);
var
  _myCon: PMySQL;      //unseren Verbindungsdeskriptor
  host, user, pass, db: PChar;      //die Anmeldedaten
begin
  //wir werden uns als Root-Benutzer in localhost einloggen, ohne eine
  //bestimmte Datenbank auszuwählen
  host := 'localhost';
  user := '***';
  pass := '***';
  db := 'usr_web_2';
 
  //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;
  MakeTables(_myCon);
  ShowMessage('Verbindung hergestellt');

 
  //zum Schluss wird die Verbindung wieder geschlossen
  mysql_close(_myCon);
end;

end.

Synonym

Chewie 16. Feb 2004 21:58

Re: MYSQL Problem mit Create Table
 
Zitat:

Zitat von Synonym
Delphi-Quellcode:
procedure MakeTables(_myCon: PMySQL);
var
  query: PChar;
begin
  mysql_select_db(_myCon, 'usr_web_2');    //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;

Du gibst als Länge des Befehls die Länge von query an, welches du allerdings nicht benutzt. Weise deinen CREATE-Befehl der Variable query zu und übergib diese an mysql_real_query, dann sollte es funktionieren.

Synonym 16. Feb 2004 22:01

Re: MYSQL Problem mit Create Table
 
und wie mach ich das?

Chewie 16. Feb 2004 22:10

Re: MYSQL Problem mit Create Table
 
Zitat:

Zitat von Synonym
und wie mach ich das?

So, wies im Tutorial steht ;):

Delphi-Quellcode:
procedure MakeTables(_myCon: PMySQL);
var
  query: PChar;
begin
  mysql_select_db(_myCon, 'usr_web_2');    //zu Datenbank "APITest" wechseln
 
  query := 'CREATE TABLE posts(id int, author int, date datetime, entry text)';
  mysql_real_query(_myCon, query, Length(query));
 
  query := 'CREATE TABLE users(id int, name varchar(50), pass varchar(50))'
  mysql_real_query(_myCon, query, Length(query));
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz