DbBesonderheiten: Unterschied zwischen den Versionen

Aus bafbal.de
Zur Navigation springen Zur Suche springen
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 44: Zeile 44:
 
* MS SQL: IsNull
 
* MS SQL: IsNull
 
* Oracle: NVL
 
* Oracle: NVL
 +
 +
Hinweis: Die BAF-Funktion $SQL_NVL setzt automatisch das Korrekte ein
  
 
==Stringverbindung==
 
==Stringverbindung==
  
* SQLite: IfNull
+
* SQLite: ||
* Firebird / Interbase: Coalesce
+
* Firebird / Interbase: ||
* MariaDB / MySQL: IfNull
+
* MariaDB / MySQL: concat
* PostgreSQL: Coalesce
+
* PostgreSQL: ||
* MS SQL: IsNull
+
* MS SQL: +
* Oracle: NVL
+
* Oracle: ||
 +
 
 +
Hinweis: Die BAF-Funktion $SQL_CONCAT setzt automatisch das Korrekte ein

Aktuelle Version vom 14. August 2021, 11:38 Uhr

Besonderheiten der unterstützten Datenbanksysteme

SQL ist eine genormte Datenbanksprache, in der Theorie sollten sich alle unterstützen Datenbanksysteme recht ähnlich verhalten. In der Praxis gibt es doch erhebliche Unterschiede. Es ist der Anspruch von BAF, diese Unterschiede "im Hintergrund" auszugleichen, sofern man sich bei der Programmierung "auf ausgetretenen Pfaden" bewegt.

Auf dieser Seite sollen einige Erkenntnisse zum unterschiedlichen Verhalten der verwendeten Datenbanksysteme dargestellt werden.

Unterstützte Datenbanksysteme

Grundsätzlich sollte alles igendwie funktionieren, was Devart UniDac unterstützt. Offiziell unterstützt werden

  • SQLite
  • Firebird / Interbase
  • MariaDB / MySQL
  • PostgreSQL
  • MS SQL
  • Oracle

CREATE TABLE

Primary Key

  • SQLite: Eine Spalte, die als PRIMARY KEY definiert wird, wird mit aufsteigenden Zahlen gefüllt, unabhängig davon, was der Anwender dem INSERT-Statement mitgibt. Da BAF GUIDs verwendet, wird PRIMARY KEY durch UNIQUE ersetzt.

Spaltenbezeichner

Manche Spaltenbezeichner sind bei dem einen Datenbanksystem problemlos möglich und bei einem anderen geschützte Wörter, die nicht verwendet werden dürfen. Bei den folgenden Spaltenbezeichnern wird automatisch ein c (wie column) davor gesetzt:

  • key
  • value
  • start
  • sort
  • text
  • password

Typen

Leerfelderersetzung

  • SQLite: IfNull
  • Firebird / Interbase: Coalesce
  • MariaDB / MySQL: IfNull
  • PostgreSQL: Coalesce
  • MS SQL: IsNull
  • Oracle: NVL

Hinweis: Die BAF-Funktion $SQL_NVL setzt automatisch das Korrekte ein

Stringverbindung

  • SQLite: ||
  • Firebird / Interbase: ||
  • MariaDB / MySQL: concat
  • PostgreSQL: ||
  • MS SQL: +
  • Oracle: ||

Hinweis: Die BAF-Funktion $SQL_CONCAT setzt automatisch das Korrekte ein