![]() |
Datenbank: mdb • Zugriff über: ado
SQL Create Table Probleme
Moin Moin,
sieht jemand im unten stehenden SQLText einen Fehler?
Delphi-Quellcode:
In den dokus die ich bisher gesehen habe, fand ich keine weiteren Infos über SINGLE,DATE usw.
SQL.Text:='Create TABLE abschluss' +
' (id LONG NOT NULL AUTO_INCREMENT,betrag SINGLE,'+ ' stempel DATETIME,zeit TEXT(50),abnum TEXT(50),PRIMARY KEY (id),UNIQUE (id))'; zB wie das setzen der Nachkommestellen. In der DDL Doku von MS sind auch nur oberflächliche Angaben, Beispiele beziehen sich meißt auf Textfelder, aber spezielle wie Fließkommazahlen oder gar Currency sehe ich nicht. Schönen 4. Advent der Gemeinde! |
Re: SQL Create Table Probleme
Gehört Primary Key und UNIQUE nicht ausserhalb der Klammer von der Felddeklaration ?
|
Re: SQL Create Table Probleme
Nein, eigentlich muss es so gehen. HAbe andere SQLStatements die so funktionieren!
|
Re: SQL Create Table Probleme
Wo meckert er denn den Fehler an in dem SQL-Statement ?
|
Re: SQL Create Table Probleme
Syntaxfehler in CREATE TABLE-Anweisung
|
Re: SQL Create Table Probleme
Hallo,
was ist "mdb"? Access oder MS-SQL Server oder was? Davon hängt auch ab, welche Varianten sinnvoll und/oder möglich sind. Welche Datentypen möchtest du eigentlich haben? Auf Unique kannst du verzichten, das ist ein PrimaryKey (PK) zwangsläufig. Der PK kann sowohl direkt bei der Spalte, als eigene Zeile innerhalb von CREATE TABLE oder nachträglich durch ALTER TABLE festgelegt werden; möglich ist alles. Siehe auch ![]() Im übrigen hat Rolf recht mit seinen Nachfragen: Was für ein Fehler soll denn vorhanden sein? Streich zunächst den Unique-Anteil; das könnte schon reichen. Aber hat die Fehlermeldung nicht mehr Informationen, z.B. so etwas wie "in der Nähe von"? Gruß Jürgen |
Re: SQL Create Table Probleme
Warum gehst du nicht nach Sherlock Holmes Manier vor?
Also zuerst bekommt die Tabelle nur ein Feld.
Delphi-Quellcode:
Und dann Schritt für Schritt immer ein weiteres Feld dazu und den Tabellenname jeweils ändern.
SQL.Text:='Create TABLE abschluss2' +
' (id LONG NOT NULL AUTO_INCREMENT)'; So findest du ganz leicht heraus, wo genau es klemmt. |
Re: SQL Create Table Probleme
Nein, hat alles nichts gebracht, schon ein einziges Feld reicht aus.
Liegt es vllt. daran das ich mehrere "Create"s hintereinander mache? Allerdings verpacke ich diese in eine Transaktion:
Delphi-Quellcode:
Aber normalerweise sollte das kein Problem darstellen...
BeginTrans
try Drop Table xxx Drop Table .... Create Table xxx Create Table.... CommitTrans except Rollback ..... |
Re: SQL Create Table Probleme
Zitat:
m.E. sollte der PRIMARY KEY nicht noch durch das UNIQUE auf das gleiche Feld angewendet werden. Primary Key erzwingt per se UNIQUE auf ID. Kannst Du mal die ganze Code-Sequenz posten, die Du verwendest? DDL ist nicht transaktional, d.h. die ungebende Transaktionssteuerung mit BeginTrans und Commit... wirkt sich auf DDL nicht aus, sondern nur auf DML-Statements. VG, Tim |
Re: SQL Create Table Probleme
Offensichtlich schon. Du musst sicherstellen, dass das DBMS (ich weiß immer noch nicht, welches du hast) die verschiedenen CREATE-Befehle getrennt versteht und hintereinander ausführen kann. In deinem o.g. Code fehlt beispielsweise das abschließende Semikolon; der MS-SQL Server verlangt ein eigenständiges GO. Manche Systeme können auch nur einen einzelnen DDL-Befehl ausführen (wie auch Tim sagt).
Gruß Jürgen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 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