Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Auto-increment bei erstellen einer tabelle?? (https://www.delphipraxis.net/28743-auto-increment-bei-erstellen-einer-tabelle.html)

plautzer 29. Aug 2004 16:26


Auto-increment bei erstellen einer tabelle??
 
Hi,

ich möchte eine tabelle während der Laufzeit erstellen,
jedoch funzt das mit den Auto-increment nicht.

Delphi-Quellcode:
with query do
    begin
    DatabaseName := 'test';
    SQL.Clear;
    SQL.Add('create table "Gruppe1.db"');
    SQL.Add('(');
    SQL.Add('  ID int not null auto_increment,');
    SQL.Add('  Gruppe char(20),');
    SQL.Add('  Name char(30),');
    SQL.Add('  Vorname char(30),');
    SQL.Add('  Strasse char(30),');
    SQL.Add('  Hausnr char(10),');
    SQL.Add('  PLZ Char(10),');
    SQL.Add('  Ort char(20),');
    SQL.Add('  Telefon char(30),');
    SQL.Add('  primary key(ID)');
    SQL.Add(')');
  end;
Es kommt immer eine Fehlermeldung das der ausdruck auto-increment nicht für sql bekannt ist.
Wie bekomme ich das zu laufen?

Plautzer

MarkusB 29. Aug 2004 18:45

Re: Auto-increment bei erstellen einer tabelle??
 
Moin plautzer!

Versuch es mal mit "AUTOINC" statt "auto_increment".

Viele Grüße
Markus

:gruebel:

plautzer 29. Aug 2004 19:47

Re: Auto-increment bei erstellen einer tabelle??
 
Nope...

hat leider auch nicht funktiniert!

Trotzdem danke,

Plautzer

MarkusB 29. Aug 2004 20:17

Re: Auto-increment bei erstellen einer tabelle??
 
Moin plautzer!

Folgendes funktioniert ohne Probleme:

Delphi-Quellcode:
with query do
begin
  SQL.Clear;
  SQL.Add('create table "Gruppe1.db"');
  SQL.Add('(');
  SQL.Add('  ID autoinc,');
  SQL.Add('  Gruppe char(20),');
  SQL.Add('  Name char(30),');
  SQL.Add('  Vorname char(30),');
  SQL.Add('  Strasse char(30),');
  SQL.Add('  Hausnr char(10),');
  SQL.Add('  PLZ Char(10),');
  SQL.Add('  Ort char(20),');
  SQL.Add('  Telefon char(30),');
  SQL.Add('  primary key(ID)');
  SQL.Add(')');

  execsql;
end;
Viele Grüße
Markus
:gruebel:

plautzer 29. Aug 2004 21:19

Re: Auto-increment bei erstellen einer tabelle??
 
Abend MarkusB

es funzt doch... da stand ich wohl ein bizzl auf'm schlauch :|

Vielen Dank,

Plautzer

Luckie 27. Jan 2005 16:03

Re: Auto-increment bei erstellen einer tabelle??
 
Ich habe eine mySQL Datenbank und wenn ich die tabelle so definiere und zur Laufzeit anlge:
Delphi-Quellcode:
query := 'CREATE TABLE Kontakte(id autoinc, name text, vorname text, strasse text, plz int, ort text, telefon text, handy text, email text)';
Dann wird mir die Tabelle erst gar nicht angelegt. :gruebel:

Nachtrag: Das ID Feld soll ein autoimkrement Feld sein. Also da soll die DB automatisch einen eindeutigen Wert eintragen.

clues1 27. Jan 2005 17:26

Re: Auto-increment bei erstellen einer tabelle??
 
Nur zur ergänzung:

MSAccess "ID COUNTER PRIMARY KEY"

MarkusB 27. Jan 2005 21:30

Re: Auto-increment bei erstellen einer tabelle??
 
Moin Luckie!

Das mit „autoinc“ war Paradox. MySQL erwartet ein „AUTO_INCREMENT“. Auszug aus MySQL manual:

Zitat:

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)]
[table_options] [select_statement]

create_definition:
col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT]
[PRIMARY KEY] [reference_definition]
or PRIMARY KEY (index_col_name,...)
...
Hast Du auch die entsprechenden Rechte um eine Tabelle anzulegen?

Viele Grüße
Markus
:gruebel:

Luckie 27. Jan 2005 21:37

Re: Auto-increment bei erstellen einer tabelle??
 
Habe alles hinbekommen.
SQL-Code:
CREATE TABLE Kontakte(id INT NOT NULL AUTO_INCREMENT, name text, vorname text, strasse text, plz int, ort text, telefon text, handy text, email text, PRIMARY KEY(id))

Karstadt 17. Jan 2006 10:26

Re: Auto-increment bei erstellen einer tabelle??
 
hallo. wie kann ich den autoincrement nachträglich setzen?

so setze ich ein primärkey

Close;
sql.Clear;
SQL.Text:='Create unique index primary on artikel (art_id)';
ExecSQL;

Autoinc ist aber nicht aktiv


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:04 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