Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Create Table Probleme (https://www.delphipraxis.net/144946-sql-create-table-probleme.html)

Privateer3000 20. Dez 2009 17:50

Re: SQL Create Table Probleme
 
Das DBMS ist Access.
Ein vorhergehendes Statement erzeugt eine Tabelle
die nur geringfügig anders ist, als bei der es knallt.
Es passiert also etwas zwischen dem (erfolgreichen) erstellen der ersten
Tabelle und der nächsten, die nicht mehr erstellt wird auf Grund des Fehlers.

Privateer3000 20. Dez 2009 18:28

Re: SQL Create Table Probleme
 
Also fakt ist eins momentan
Das erste Create wird tadellos ausgeführt
beim zweiten knallts.
Delphi-Quellcode:
Close;SQL.Clear;
    SQL.Text:='Create TABLE madopt' +
              ' (id LONG NOT NULL,bd1a INTEGER,'+
              ' bda2 LONG, bda3 LONG,bda4 LONG,'+
              ' bda5 LONG,bericht1a LONG,PRIMARY KEY (id))';
    ExecSQL;
    Close;SQL.Clear;
    SQL.Text:='Create TABLE abschluss' +
              ' (id LONG NOT NULL AUTO_INCREMENT,bdaft SINGLE,'+
              ' stempel DATE SHORT,zeit TEXT(50),abnum TEXT(50),PRIMARY KEY (id))';
    ExecSQL;
Und ich weiß eben nicht warum.
Muss die Connection getrennt werden, oder wie was ....

BlackbirdBerlin 20. Dez 2009 18:57

Re: SQL Create Table Probleme
 
Hi nochmal,

ist denn in der Zeile " stempel DATE SHORT, " der Datentyp "DATE SHORT" mit Leerzeichen, ein gültiger Datentyp bei M$ Access?
Entweder DATE oder SHORT wäre schlüssig...

Grüße,
Tim

Privateer3000 20. Dez 2009 19:03

Re: SQL Create Table Probleme
 
Nein, daran liegts nicht... ganz sicher
da ich dort schon testhalber datetime stehen hatte...

BlackbirdBerlin 20. Dez 2009 19:09

Re: SQL Create Table Probleme
 
Dann nochmal hi,

da mir auf die Schnelle auch nichts fehlerquelliges mehr auffällt, versuch dochmal die Reihenfolge der Creates umzudrehen.
Wenn diesmal beim ersten knallt, können wir zumindest schonmal eingrenzen, daß es an dem CREATE-Statement liegt.

VG, Tim

Jürgen Thomas 20. Dez 2009 19:14

Re: SQL Create Table Probleme
 
"DATE SHORT" ist mit Sicherheit falsch! Ein Leerzeichen darf es an dieser Stelle niemals geben; es ist (ganz egal in welchem SQL-Dialekt) immer ein Trenner zwischen verschiedenen Schlüsselwörtern.

Du musst unbedingt in der Access-Dokumentation nachlesen, welcher Datentyp zu deinem Ziel passt, vielleicht ShortDate oder ShortDateTime.

Jürgen

Privateer3000 20. Dez 2009 20:08

Re: SQL Create Table Probleme
 
Ich habe testhalber aus dem Datetime feld ein Textfeld gemacht.
Das es keine Inserts gibt ist das kein Problem. Trotzdem
meckerts rum, Syntaxfehler im CREATE.
Hab auch die Creats mal gedreht, es bleibt dabei nach dem
ersten und vor dem zweiten knallts.

BlackbirdBerlin 21. Dez 2009 07:43

Re: SQL Create Table Probleme
 
Ok,

wenn ich dich jetzt richtig verstehe, knallt's jetzt schon beim ersten, also dem mit dem AUTO_INCREMENT.

Ich habe keine M$-Access-Doku, aber im Web alternativen zu AUTO_INCREMENT gefunden:
AUTOINCREMENT bzw COUNTER.

Keine Ahnung, ob's daran liegt. Lass doch zuerst mal das Schlüsselwort AUTO_INCREMENT weg.

Ansonsten: Versuch doch mal, das Statement direkt in ACCESS einzugeben...
Ich hab das grad mal ausprobiert... Nutze zwar Access nicht, aber in meinem Office ist's dabei.
Also, wenn man das Statement

SQL-Code:
Create TABLE abschluss' +
              ' (id LONG NOT NULL AUTO_INCREMENT,bdaft SINGLE,'+
              ' stempel DATE SHORT,zeit TEXT(50),abnum TEXT(50),PRIMARY KEY (id))
in Access direkt versucht auszuführen, meckert es zuerst bei AUTO_INCREMENT (allerdings ebenso bei AUTOINCREMENT und COUNTER) und dann bei DATE SHORT.

Wie Jürgen schon geschrieben hat: lies die Doku und probier am besten zuerst das Statement in ACCESS selbst zum laufen zu bringen. Das meldet Dir den Fehler direkt im Editor und ist hinrichend geschwätzig...

So, noch ein Versuch mit Hilfe anschauen hat's gebracht: bei Verwendung von AUTOINCREMENT (OHNE Unterstrich) in der Form

SQL-Code:
Create TABLE abschluss (id autoincrement NOT NULL ,bdaft SINGLE, stempel DATEtime,zeit TEXT(50),abnum TEXT(50),PRIMARY KEY (id))
funktioniert es, da der Datentyp AUTOINCREMENT implizit Datentyp und Hochzähleigenschaft beinhaltet.

Grüße,
Tim

hoika 21. Dez 2009 08:42

Re: SQL Create Table Probleme
 
Hallo,

du kannst das nur schrittweise probieren.

Zu AutoInc siehe her
1

Original heisst das also Counter


Was ich nicht verstanden habe.

Du drehst die Create's um, und es kracht wieder nach dem 1. ??

Ich würde doch erst mal mit einer Tabelle anfangen.
Wenn die geht, diese Statemant ausklammern,
und weiter mit dem nächsten.


Heiko

mikhal 21. Dez 2009 09:55

Re: SQL Create Table Probleme
 
Die erste Spalte soll mit einem Autoincrement versehen werden, da heißt der Datentyp bei Access Counter.

Grüße
Mikhal


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:44 Uhr.
Seite 2 von 3     12 3      

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-2025 by Thomas Breitkreuz