So, jetzt muss ich meinen Frust ueber dieses Achsotolle RDBMS mit Namen “MSSQL” mal rauslassen.
Wie kann es sein, dass eine Verbindung via DBD::ODBC auf eine MSSQL nur 1 (In Worten: EIN) aktives Statement gleichzeitig zulässt ? Neben einigen anderen Problemchen, war das nun der Grund auf DBD::ADO zu wechseln. Mal abgesehen von dem grausigen SQL-Syntax dieses Karteikastens, kann mir mal jemand sagen wieso man bei ADO die Bind-Parameter nicht durchnummerieren kann ??? Da scheint nur ein “?” zu funktionieren.
Entweder mir fehlt noch der Durchblick bei dem MS-Gedönse, oder das Teil ist schlecht per Design…
Genug herumgefrustet. Wenn die naechsten Probleme kommen (und die kommen bestimmt), gibt es hier ein Update…
[Update 1]: rownum (aus Oracle): nicht vorhanden.
Limit (aus MYSQL): ersetzt man durch “top” direkt hinter dem SELECT
[Update 2]: MERGE (aus Oracle): nicht vorhanden, also haendisches Merging…
[Update 3]: FUNCTION Based Indizes: nicht vorhanden.
[Update 4]: Variablen mit NULL-Werten via ADO binden: geht nicht
[Update 4b]: Mehrere Statements mit ODBC gleichzeitig bearbeiten: Fehlanzeige 🙁
[Update 5]: Die DB verhält sich unter Win2003 US anders als unter Win2003 GERMAN … Suspekt
[Update 6]: Ein Ordentliches Handling von Datumsfeldern a la “to_date” oder “to_char” mit relativ freien Formatierungsstrings ist nicht drin. Stattdessen kryptische Numerische Konstanten die gerade mal eine Hand voll vorformatierten Datumsformaten zulassen. Wenn das mal kein Beinbruch ist… oha!
[Update 7]: Strings mit Nullen oder anderen Chars auffuellen (unter ORA mit LPAD/RPAD): Nicht moeglich. Ein Umweg ueber selbst gestrickte Funktionen waere hier angesagt…