DbBesonderheiten
Inhaltsverzeichnis
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