AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Allgemeiner SQL-Syntax für Multi-DBMS Projekt
Thema durchsuchen
Ansicht
Themen-Optionen

Allgemeiner SQL-Syntax für Multi-DBMS Projekt

Ein Thema von klaus.meyer · begonnen am 20. Mai 2008 · letzter Beitrag vom 26. Mai 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von klaus.meyer
klaus.meyer

Registriert seit: 19. Jun 2004
146 Beiträge
 
Delphi 7 Personal
 
#1

Allgemeiner SQL-Syntax für Multi-DBMS Projekt

  Alt 20. Mai 2008, 20:53
Datenbank: MySQL • Version: 5.0.51a • Zugriff über: PHP Wrapper-Klasse mit mysql_connect() ...
Hallo liebe DP-ler,

ich bin gerade dabei mein CMS von Grund auf neu zu Programmieren und möchte jetzt die SQL Abfragen so allgemein wie möglich halten, damit ich durch austauschen der DB-Klasse andere Datenbank-Syteme wie PostgreSQL oder MSSQL verwenden kann.

Beispiel MySQL-Abfrage

SELECT `user_id` FROM `user` WHERE `user_id` < 42 ORDER BY `order`; 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 ".

Gibt es da nichts einheitliches? Ich möchte ungern die Querys doppelt im Sourcecode haben.

Mfg Klaus
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

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

  Alt 20. Mai 2008, 20:55
Für PHP gibt es schon einige Wrapper: MDB2, PDO, ADODB, ...
Markus Kinzler
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#3

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

  Alt 20. Mai 2008, 21:10
Bezeichner in Quotes sind doch nur nötig, wenn du ein keyword nutzt, oder der Name gegen die Regeln von Bezeichnern verstößt.

IOW: Du musst gar nichts in Single/Doublequotes, oder MSSQLs komische Klammern.
Ich habe absolut gar keinen Schimmer, warum mySQL-Opfer ständig diese Quotes setzen...


Edit2: Oh sorry, du musst ja PHP nutzen...
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von klaus.meyer
klaus.meyer

Registriert seit: 19. Jun 2004
146 Beiträge
 
Delphi 7 Personal
 
#4

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

  Alt 20. Mai 2008, 21:26
Klammern will ich setzten wg. Keywords. (Habe auch gar keinen Einfluss auf die Feldnamen)
Die Wrapper von PHP sind dann quasi ne Schnittstelle, die ich mit allgemeiner Syntax ansprechen kann?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

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

  Alt 20. Mai 2008, 21:29
Jein. Im gewissen Umfang
Markus Kinzler
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#6

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

  Alt 20. Mai 2008, 21:42
Zitat von klaus.meyer:
Habe auch gar keinen Einfluss auf die Feldnamen
Doch hast du.
Der User kann anscheinend über dein System eigene Tabellen kreieren?
Dann sind deine SQLs doch eh dynamisch (du hast ja alle Metadaten bei der Hand) und wenn du die SQLs zusammenbaust, nutzt du halt die entsprechenden Quotes.

Ich habe keinen Plan von den Zugriffslibs von PHP (glücklicherweise ), kann dir also nicht sagen, ob adodb alleine die Quotes übersetzt.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
672 Beiträge
 
Delphi 10.4 Sydney
 
#7

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

  Alt 21. Mai 2008, 10:09
Zitat von klaus.meyer:
Hallo liebe DP-ler,

ich bin gerade dabei mein CMS von Grund auf neu zu Programmieren und möchte jetzt die SQL Abfragen so allgemein wie möglich halten, damit ich durch austauschen der DB-Klasse andere Datenbank-Syteme wie PostgreSQL oder MSSQL verwenden kann.
Ein guter Rat: lass es bleiben
Nein, im Ernst: Schreibe Dir lieber eine Klassenbibliothek, welche Dir die Objekte so liefert, wie Du sie weiterverarbeiten kannst. Dann ersetzt Du die Klassenbibliothek für die einzelnen DBMS (zB um bei der Delphi-Syntax zu bleiben: TUser - abstract, TMySQLUser, TMSSQLUser, TPGUser usw).
Grund? Es gibt nichts wirklich einheitliches, die SQL Syntax unterscheidet sich, wenn auch nur minimal. Und denke mal über SQL Injection nach: Du musst Parameter verwenden, damit Dir das nicht passiert und das Parameter-Handling von MySQL ist mehr als umständlich.
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#8

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

  Alt 21. Mai 2008, 10:36
Zitat von joachimd:
Grund? Es gibt nichts wirklich einheitliches,
Doch! "SELECT 1" funktioniert überall
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#9

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

  Alt 21. Mai 2008, 11:28
Zitat von alzaimar:
Zitat von joachimd:
Grund? Es gibt nichts wirklich einheitliches,
Doch! "SELECT 1" funktioniert überall
Nope, ältere PG-Versionen brauchen eine FROM-Klausel mit einer beliebigen Tabelle.
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
795 Beiträge
 
Delphi 11 Alexandria
 
#10

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

  Alt 21. Mai 2008, 11:51
Oracle (9i) kann's auch nicht. Da verwendet man am besten "FROM DUAL"...

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:19 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