DbBesonderheiten

Aus bafbal.de
Zur Navigation springen Zur Suche springen

Besonderheiten der unterstützten Datenbanksysteme[Bearbeiten]

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[Bearbeiten]

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[Bearbeiten]

Primary Key[Bearbeiten]

  • 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[Bearbeiten]

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[Bearbeiten]

Leerfelderersetzung[Bearbeiten]

  • 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[Bearbeiten]

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

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