Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Tabellenname muss in Anführungszeichen geschrieben werden (https://www.delphipraxis.net/152412-tabellenname-muss-anfuehrungszeichen-geschrieben-werden.html)

Chemiker 22. Jun 2010 00:21

Datenbank: FB • Version: 2.1 • Zugriff über: IBExpert

Tabellenname muss in Anführungszeichen geschrieben werden
 
Hallo,

ich arbeite mit FB und eine Tabelle in einer Datenbank muss in Anführungszeichen geschrieben werden damit sie im IBExpert funktioniert. Warum ist das so?

SQL-Code:
SELECT * FROM "MW_Test“    // geht
SELECT * FROM MW_Test     // geht nicht
Andere Tabellen können einfach mit:

SQL-Code:
SELECT * FROM MW
aufgerufen werden.

Bis bald Chemiker

s.h.a.r.k 22. Jun 2010 00:29

AW: Tabellenname muss in Anführungszeichen geschrieben werden
 
Groß- und Keinschreibung?! ;) Wenn du im Tabellennamen alles groß geschriebeb hast, so sollte es auch ohne "" gehen, aber dann wird quasi immer automatisch eine UpperCase gemacht. Zumindest ist das bei Oracle 9.x so und ich denke, dass das hier auch der Fall sein wird.

Chemiker 22. Jun 2010 00:46

AW: Tabellenname muss in Anführungszeichen geschrieben werden
 
Hallo s.h.a.r.k,

das kann gut möglich sein. Merkwürdig ist nur das wenn ich versuche eine weitere Tabelle anzulegen mit kleine Buchstaben das sie jetzt automatisch groß geschrieben werden.

Bis bald Chemiker

Hansa 22. Jun 2010 01:30

AW: Tabellenname muss in Anführungszeichen geschrieben werden
 
In IBExpert ist doch ein Punkt "allways capitalize..." Da fängts an. Weiterhin gilt : einmal " immer " !

s.h.a.r.k 22. Jun 2010 01:59

AW: Tabellenname muss in Anführungszeichen geschrieben werden
 
Ich muss ganz ehrlich sagen, dass ich das mit den " eingeführt habe, da es einfach besser lesbar ist imho, obwohl es an ein paar Stellen mehr Schreibarbeit bedeutet.

Jens Hartmann 22. Jun 2010 05:23

AW: Tabellenname muss in Anführungszeichen geschrieben werden
 
Hallo Chemiker,

ich mache es auch wie s.h.a.r.k, da es einfach besser zu lesen ist. Man kann direkt erkennen wo einen Tabelle etc. zu finden ist. Und IBExpert macht das mit dem Befehl "Immer Großschreiben" halt automatisch.

Gruß Jens

mkinzler 22. Jun 2010 05:25

AW: Tabellenname muss in Anführungszeichen geschrieben werden
 
Die "" bewirken das Klein-/Großschreibung unterschieden wird. Man muss ein solch angelegte Tabelle auch immer mit "" und der idetischen Groß-/Kleinkombination schreiben.

SQL-Code:
Select * from "Tabelle";
ist was anderes als
SQL-Code:
Select * from "TABELLE";
oder
SQL-Code:
select * from "tabelle";
Man sollte sich deshalb den Einsatz sehr überlegen.

DeddyH 22. Jun 2010 08:10

AW: Tabellenname muss in Anführungszeichen geschrieben werden
 
Mir fällt spontan nur ein Grund für eine solche Vorgehensweise ein: wenn man (aus welchen Gründen auch immer) mehrere Tabellen mit dem gleichen Namen deklarieren will, die sich nur in der Groß- und Kleinschreibung unterscheiden. Aber generell sollte man IMHO möglichst darauf verzichten, da man sich sonst unnötige Fehlerquellen einhandelt. Und besser lesbar finde ich das nicht, ich kann den Tabellennamen ohne Anführungszeichen ja schreiben, wie ich lustig bin.

alphaflight83 22. Jun 2010 09:33

AW: Tabellenname muss in Anführungszeichen geschrieben werden
 
Nach anfänglichen Problemen bei diesem Thema bin ich auch zur always capitalize Methode übergegangen.
Zum Einen kann ich die Queries so einfacher zwischen MySQL und Firebird umschalten,
zum Anderen schließe ich mich Detlef an - Groß-Kleinschreibung ist mMn eine unnötige und vermeidbare Fehlerquelle.

Hansa 22. Jun 2010 12:55

AW: Tabellenname muss in Anführungszeichen geschrieben werden
 
Zuerst mal das hier lesen :

http://www.firebirdfaq.org/faq76/

Und hierzu :

Zitat:

Zitat von s.h.a.r.k (Beitrag 1030803)
Ich muss ganz ehrlich sagen, dass ich das mit den " eingeführt habe, da es einfach besser lesbar ist imho, obwohl es an ein paar Stellen mehr Schreibarbeit bedeutet.

Da kann man fast nur noch den Kopf schütteln. :zwinker: Man sehe sich das hier mal an :

Delphi-Quellcode:

SuchDS.SelectSQL.Add ('SELECT * FROM "TABELLe" WHERE UPPER ('+BezFeld +')'+ LIKE UPPER (''%' + edSuch.Text + '%'') ORDER BY NR');
Man würde das zwar sowieso besser parametrisieren, aber um das "TABELlE" käme man trotzdem kaum herum. Wer aufpasst, der merkt, dass es sich hier sogar um 2 verschiedene Tabellen handelt. Das sind Fehler, die man auf den ersten Blick gar nicht bemerkt. Man muss auch ...FieldByName ('"NR"'); schreiben. Völlig überflüssig. Die für Delphi nötigen doppelten ' sind zwar lästig, aber ist eines zuwenig / zuviel da, wird nicht compiliert und das muss eben korrigiert werden. Schreibfehler in einem Feldnamen, die werden aber lediglich quittiert durch Fehlermeldungen zur Laufzeit. Wer sich eine solche Fehlerquelle bewusst zumutet, der ist selber Schuld. Die Qualität des Quelltextes, wo "" verwenden werden MÜSSEN (jetzt egal, ob DB oder im Delphi-Programm), die würde ich als mangelhaft einstufen. 8-) Und wer schon mal mit Linux zu tun hatte, der hat bestimmt schon über die dämliche Gross/Kleinschreibung und die dadurch verursachren Fehler geflucht. :mrgreen:

Im deutschen IBExpert steht übrigens : "Datenbankobjektnamen immer großschreiben". Es geht eben darum, die "" nicht zu brauchen. Das gilt für wohl weit über 95 % der DB-Programmierer. Soweit ich weiss, wurden die "" in FB nur zugelassen wegen Kompatibilität zu vorhandenen anderen DBs. Wenn ich da ein Script mit Daten zum FB-Import habe und die Vorgänger-DB braucht die "", dann gehts eben auch so. Ich selber würde die "" allerdings direkt eliminieren.

P.S.: sehe gerade, dass der Text hier etwas komisch aussieht. Auch das dürften Probleme durch "''"'"'"'"''" sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:17 Uhr.
Seite 1 von 2  1 2      

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