Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Reservierte Wörter als Tabellenfelder (https://www.delphipraxis.net/94888-reservierte-woerter-als-tabellenfelder.html)

Alter Mann 27. Jun 2007 18:24

Datenbank: unbekannt • Zugriff über: unbekannt

Reservierte Wörter als Tabellenfelder
 
Hallo,

eine Verständnisfrage:

Wenn ich mit 'Create Table' eine Tabelle erstelle und dabei Wörter für die Felder verwende
die aber reservierte Wörter des DB-Servers sind, werden sie automatisch so ungewandelt das sie
weiterhin nutzbar bleiben?

z.B.:

Wird beim MS-SQL-Server aus dem Feldnamen 'System_User' ein '[System_User]'.
Ich kann programmtechnisch aber mit 'System_User' weiterarbeiten.

SQL-Code:
CREATE TABLE [dbo].[TAB_TEST] (
   [SYSID] [bigint] IDENTITY (1, 1) NOT NULL ,
   [SYSTEM_USER] [char] (15) COLLATE Latin1_General_CI_AS NULL
) ON [PRIMARY]
GO
Verhalten sich die anderen DB-Server auch so?
Es wäre Nett wenn ihr ein kurzes Statement in Form von: Mysql Ver. xy Ja/Nein, abgeben würdet.

Gruß

Alter Mann

shmia 27. Jun 2007 18:40

Re: Reservierte Wörter als Tabellenfelder
 
Bei anderen Datenbanken müssen reservierte Namen in doppelte Anführungszeichen gesetzt werden. (entspricht SQL/92 Standard)
ABER: Finger weg von reservierten Namen als Feld-, Tabellen- oder Viewname! :warn: :warn:
Das kann ganz bösen Ärger verursachen. Die Fehlermeldungen sind entweder kryptisch oder völlig irreführend oder so allgemein, dass man nichts damit anfangen kann.
Dabei muss man nicht nur die reservierten Namen der benutzten Datenbank vermeiden, sondern möglichst
die Vereinigungsmenge aller reservierten Namen von allen Datenbanken.
Vielleicht möchte man später den Datenbankhersteller wechseln.
Dann kann es passieren, dass unter der neuen Datenbank rätzelhafte Fehlermeldungen auftauchen.
(Und dann "viel Spass" beim suchen)

Reserved Keywords (MS SQL Server 2000)

joachimd 28. Jun 2007 08:07

Re: Reservierte Wörter als Tabellenfelder
 
Zitat:

Zitat von shmia
Bei anderen Datenbanken müssen reservierte Namen in doppelte Anführungszeichen gesetzt werden. (entspricht SQL/92 Standard)

IIRC sind eckige Klammern SQL-Standard und Doppel-Quotes MS-Standard

Zitat:

Zitat von shmia
ABER: Finger weg von reservierten Namen als Feld-, Tabellen- oder Viewname! :warn: :warn:
Das kann ganz bösen Ärger verursachen. Die Fehlermeldungen sind entweder kryptisch oder völlig irreführend oder so allgemein, dass man nichts damit anfangen kann.

Genau: unbedingt daran halten!

Nachtrag: ADS ist es egal, solange bei den Abfragen die Feldnamen sauber gequoted sind.
Nach-Nachtrag: ADS akzeptiert sowohl [] als auch ""

shmia 28. Jun 2007 08:56

Re: Reservierte Wörter als Tabellenfelder
 
Zitat:

Zitat von joachimd
IIRC sind eckige Klammern SQL-Standard und Doppel-Quotes MS-Standard

Nein, es ist gerade anderst herum.
siehe: http://www.contrib.andrew.cmu.edu/~s...ql/sql1992.txt
Hier die Bildungsregel:
Code:
<double quote> ::= "
<delimited identifier> ::= <double quote> <delimited identifier body> <double quote>

joachimd 28. Jun 2007 09:54

Re: Reservierte Wörter als Tabellenfelder
 
Zitat:

Zitat von shmia
Nein, es ist gerade anderst herum.

Schon schlimm genug, dass es Standards gibt, an welche sich manche großen "Arroganzien" einfach nicht halten.

Alter Mann 28. Jun 2007 14:55

Re: Reservierte Wörter als Tabellenfelder
 
Hallo,

ersteinmal Dank für die Antworten. Das man reservierte Wörter nicht verwenden sollte ist mir
schon Klar, bin selber schon einmal reingefallen bei MS Access.

Gruß

[Edit]
Da nun eine neue Frage kommen würde, geht es hier Reservierte Wörter ermitteln weiter.
[/Edit]


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