Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   SQL Anweisung (https://www.delphipraxis.net/25605-sql-anweisung.html)

Nuclear-Ping 9. Jul 2004 07:54


SQL Anweisung
 
Hallo ihr,

ich habe hier ein paar SQL-Anweisungen, die ich irgendwie nicht ausgeführt bekomme. Weder mySQL, noch die DB-Oberfläche von Delphi, noch der Advantage DB Server will das akzeptieren, jeder meckert wegen etwas anderem. Hab zwar schon bisschen rumprobiert, jedoch mit CREATE TABLE noch nix gemacht, daher verstehe ich es nicht und ein Erfolg blieb somit aus. :gruebel:

Könnte mir vielleicht jemand diese Aufschlüsseln, so dass ich sie in ein gültiges Format umwandeln und nutzen kann?

Code:
CREATE TABLE Kapitel (
    KapNr TEXT(2) CONSTRAINT KapX PRIMARY KEY,
    KapTi TEXT(110)
);

...

CREATE TABLE Codes (
    Ebene TEXT(1),
    Ort TEXT(1),
    Art TEXT(1),
    KapNr TEXT(2) CONSTRAINT CodesKapitel REFERENCES Kapitel,
    GrVon TEXT(3) CONSTRAINT CodesGruppen REFERENCES Gruppen,
    Code TEXT(7) CONSTRAINT CodeX PRIMARY KEY,
    NormCode TEXT(6) CONSTRAINT NormCodeX UNIQUE,
    ...
);

...
Herzlichen Dank! :)

Grüße,
Mario

r_kerber 9. Jul 2004 07:56

Re: SQL Anweisung
 
Moin Mario,

muß das nicht CHAR, CHARACTER oder VARCHAR heißen und nicht TEXT?

Nuclear-Ping 9. Jul 2004 08:56

Re: SQL Anweisung
 
Deswegen frag ich ja. ;)

Ich hab schon versucht, es an den entsprechenden Syntax (soweit ich ihn kenne) anzupassen, z.B. für mySQL VARCHAR, Advantage CHAR, aber dann meckert er wieder wegen etwas anderem.

mySQL kann mit CONSTRAINT nichts anfangen, bei der DB-Oberfläche von Borland meint er konsequent einfach nur "Ungültiges Schlüsselwort", ohne Verweis auf den Ort des Fehlers und bei der Advantage DB erzeugt die Tabellen bis zu einer bestimmten und meint dann "Unexpected Token: Only one PRIMARY KEY can exist per Table" und verweist dabei auf
Code:
CREATE TABLE MortL1 (
      MortL1Code    CHAR(5) CONSTRAINT MortL1CodeX PRIMARY KEY,
 >>>> MortL1GrpCode CHAR(5) CONSTRAINT MortL1MortL1Grp REFERENCES MortL1Grp, <<<<
      MortL1Ti      CHAR(255)
);
Grüße,
Mario

Sharky 9. Jul 2004 09:04

Re: SQL Anweisung
 
Hai Nuclear-Ping,

hier einmal ein Auszug aus meiner mySQL-Dokumentation. Eventuell hilft dir das weiter?

Zitat:

7.5.3 CREATE TABLE-Syntax

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tabelle [(create_definition,...)]
[tabellen_optionen] [select_statement]

create_definition:

spalten_name typ [NOT NULL | NULL] [DEFAULT vorgabe_wert] [AUTO_INCREMENT]
[PRIMARY KEY] [referenz_definition]
oder PRIMARY KEY (index_spalten_name,...)
oder KEY [index_name] (index_spalten_name,...)
oder INDEX [index_name] (index_spalten_name,...)
oder UNIQUE [INDEX] [index_name] (index_spalten_name,...)
oder FULLTEXT [INDEX] [index_name] (index_spalten_name,...)
oder [CONSTRAINT symbol] FOREIGN KEY index_name (index_spalten_name,...)
[referenz_definition]
oder CHECK (ausdruck)

Nuclear-Ping 9. Jul 2004 09:58

Re: SQL Anweisung
 
Hallo Sharky,

vielen Dank, aber das wollte ich gerade vermeiden. ;)

Ein konkretes Beispiel würde mir viel weiter helfen, als die allgemeine komplexe Syntax-Referenz des Befehls.

Wie schon gesagt akzeptiert der Advantage DB Server die modifizierte Abfrage, wo TEXT durch CHAR ersetzt wurde, meckert jedoch nun wegen dem PRIMARY KEY. :gruebel:

Grüße,
Mario


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