Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Create Table über die Komponente MySQL Access (https://www.delphipraxis.net/177940-create-table-ueber-die-komponente-mysql-access.html)

Alterauge 6. Dez 2013 18:12

Datenbank: MySQL • Version: 5.1 • Zugriff über: MyConnection

Create Table über die Komponente MySQL Access
 
Hallo,

arbeite mit den Komponenten von MySQL Access.

Möchte über eine Checkbox prüfen, ob die Table in der Datenbank vorhanden ist.
Wenn nicht, soll die Table in die DB geschrieben werden.

Das prüfen geht soweit ganz gut!
Habe das Problem eine Table anzulegen.

Delphi-Quellcode:
procedure TForm1.CheckBox3Click(Sender: TObject);
begin
if CheckBox3.Checked = true then
 begin
  MetaDataBosMon.MetaDataKind := 'Tables';
  MetaDataBosMon.Restrictions.Values['TABLE_NAME'] := 'telegramstorage1';
  MetaDataBosMon.Open;
  if not MetaDataBosMon.Eof then begin
    ShowMessage('Tabellenschema prüfung (BosMon) existed!');
  mysqlbosmon.Active := true;
  refresh_bosmon.Enabled := true;
  BitBtn2.Enabled := true;
  BitBtn3.Enabled := true;
  BitBtn4.Enabled := true;
  BitBtn5.Enabled := true;
  BitBtn6.Enabled := true;
  CheckBox3.Enabled := false;
 end else begin
  refresh_bosmon.Enabled := false;
  mysqlbosmon.Active := false;
  BitBtn2.Enabled := false;
  BitBtn3.Enabled := false;
  BitBtn4.Enabled := false;
  BitBtn5.Enabled := false;
  BitBtn6.Enabled := false;
  CheckBox3.Enabled := true;
  ShowMessage('Tabellenschema prüfung (BosMon) failed!');
  CheckBox3.Checked := false;

  script_bosmon.SQL.Text := CREATE TABLE `users` (    // also ab hier habe ich ein Problem! Was ist falsch an "Create Table" ??

   `id` int(3) NOT NULL auto_increment,
   `login` varchar(8) default NULL,
   `password` varchar(8) default NULL,
    PRIMARY KEY (`id`)
    ) TYPE=MyISAM AUTO_INCREMENT=3 ;

         script_bosmon.Execute;
 end;
 end;
end;

himitsu 6. Dez 2013 18:39

AW: Create Table über die Komponente MySQL Access
 
Zitat:

Zitat von Alterauge (Beitrag 1238819)
Delphi-Quellcode:
// also ab hier habe ich ein Problem! Was ist falsch an "Create Table" ??

Was sagt denn der Compiler?


Wenn dein Quellcode genau so aussieht, wie du es gepostet hast,
dann überlege mal, was du da eigentlich an SQL.Text zuweisen willst.
(string :roll:)

Medium 7. Dez 2013 02:31

AW: Create Table über die Komponente MySQL Access
 
Kleiner Tipp am Rande:
Delphi-Quellcode:
TCheckbox.Checked := True // oder False
löst TCheckbox.OnClick aus.
Riesen VCL-Bullshit, das gehört eigentlich in ein OnChange. Aber die Dinge sind nun mal wie sie sind.

DeddyH 7. Dez 2013 15:19

AW: Create Table über die Komponente MySQL Access
 
Ich vestehe nicht ganz, wozu den ganzen Aufriss, MySQL hat doch da eine bestimmte Sytnax:
SQL-Code:
CREATE TABLE IF NOT EXISTS `users` (
   `id` int(3) NOT NULL auto_increment,
   `login` varchar(8) default NULL,
   `password` varchar(8) default NULL,
    PRIMARY KEY (`id`)
    ) TYPE=MyISAM AUTO_INCREMENT=3;
Damit wird die Tabelle nur dann angelegt, wenn sie noch nicht existiert.

jobo 7. Dez 2013 18:24

AW: Create Table über die Komponente MySQL Access
 
Es geht hier vermutlich um den Aufbau des 'Strings', fehlendes Hochkomma.
Außerdem müsste es glaub ich 'Engine' statt 'Type' heißen, aber ist vielleicht versionsabhängig. Wenn, dann wäre es auch bei der Variante mit Exists ein Fehler.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:15 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 by Thomas Breitkreuz