Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Allgemeiner SQL-Syntax für Multi-DBMS Projekt (https://www.delphipraxis.net/114163-allgemeiner-sql-syntax-fuer-multi-dbms-projekt.html)

joachimd 21. Mai 2008 12:12

Re: Allgemeiner SQL-Syntax für Multi-DBMS Projekt
 
Zitat:

Zitat von alzaimar
Doch! "SELECT 1" funktioniert überall :mrgreen:

Dass das nicht überall geht (zB beim ADS auch nicht) hast Du ja schon erfahren. Ich möchte jetzt noch von Dir wissen, welchem Standard dieses Statement entspricht, dass Du auf eine solche Aussage kommst (kleiner Tipp: KEINEM!).

klaus.meyer 21. Mai 2008 21:54

Re: Allgemeiner SQL-Syntax für Multi-DBMS Projekt
 
OK danke, ich sehe schon da gibt es keine Lösung die für alle Systeme gilt.

Dann definiere ich halt in der DB Klasse des Trennzeichen als Attribut und klatsch das halt immer rein.

Danke.

alzaimar 25. Mai 2008 20:41

Re: Allgemeiner SQL-Syntax für Multi-DBMS Projekt
 
Zitat:

Zitat von joachimd
Zitat:

Zitat von alzaimar
Doch! "SELECT 1" funktioniert überall :mrgreen:

...Ich möchte jetzt noch von Dir wissen, welchem Standard dieses Statement entspricht, dass Du auf eine solche Aussage kommst

Was soll das? Hochmut kommt vor dem Fall.

grenzgaenger 25. Mai 2008 23:06

Re: Allgemeiner SQL-Syntax für Multi-DBMS Projekt
 
Zitat:

Zitat von klaus.meyer
Klammern will ich setzten wg. Keywords. (Habe auch gar keinen Einfluss auf die Feldnamen)

die klammern sind so viel ich weiss, etwas MS spezifisches, bspw. access, sql server. auf anderen datenbanken wirst du das nicht haben und dementsprechend dein statement abgelehnt werden. somit bleibt dir IMHO nichts anderes übrig, als den kleinsten gemeinsamen nenner zu suchen und ihn bei der eingabe abzuprüfen und zu verifizieren.

btw: die klammern würd ich gleich von anfang an vergessen.

sx2008 26. Mai 2008 02:50

Re: Allgemeiner SQL-Syntax für Multi-DBMS Projekt
 
Zitat:

Zitat von klaus.meyer
Wie könnte ich diese Abfrage so allgemein wie möglich halten? In MySQL sind ja ` die Seperatoren für Spaltennamen, in MSSQL wiederung [ und ] und in PostgreSQL glaube ich ".

Nach SQL/92 werden doppelte Anführungszeichen für Feld- und Tabellennamen verwendet und das Hochkomma für String-Literale:
SQL-Code:
SELECT "Feld42", 'Feld42' FROM ....
Also liefert "Feld42" den Inhalt des Feldes, während 'Feld42' als Stringkonstante in jedem Datensatz erscheint.

Ich würde alle Feld- und Tabellennamen so wählen, dass die Anführungszeichen nicht nötig sind.
Deine Datenbanken sollen vielleicht auch mal mit externen Tools abgefragt werden, die keine Anführungszeichen verwenden und dann Probleme bekommen.
1.) max. 32 Zeichen
2.) nur Buchstaben, Ziffern und Unterstrich erlaubt
3.) niemals mit Ziffer beginnen
4.) keine reservierten Wörter verwenden (select, count, create, table, alter, user, .. ~ 400 Stück)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:38 Uhr.
Seite 2 von 2     12   

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