<< Click to Display Table of Contents >> Navigation: Anwendungen (Apps) erstellen und ändern - Berechtigung Designer > Prozessschritte in Apps erstellen und ändern > Reiter Container und Profile > Datenbanken > ODBC - Verbindung erstellen > Probleme und Fragen |
Folgende Fragen und Probleme können beim Arbeiten mit OLE DB und ODBC auftreten.
Bezeichnung ACE vs. ACE32/ACE64 |
ACE = Access Database Engine ACE32/ACE64 = Advantage Database Connection Engine) |
Verfügbarkeit von 32/64 Bit ODBC-Treibern für Access, Excel etc. |
Office 64-Bit ist nötig, damit 64-Bit ACE-Treiber verfügbar sind (sonst nur 32-Bit). |
Die Datenmenge lässt sich nicht (per SQL) aktualisieren |
READONLY=0 im Connectstring setzen;
Ein "." (Punkt) im Feldnamen lässt sich nicht abfragen. In der SQL Query den "." durch "#" ersetzen und Feldnamen nach ANSI klammern ([feld#name]). |
Eine Tabelle ohne Spaltennamen abfragen |
HDR=NO; in den ConnectString anfügen.
Der Parameter HDR wird im Connect-String festgelegt. Durch eine Übergabe des Parameters wird die erste Datenzeile in einer Excel-Datei (in der Regel die Spaltenbezeichnungen) als Datensatz behandelt und den Spalten wird die Bezeichnung f1,f2..fn als Nummerierung zugeordnet. |
Die SQL Abfragen schlagen fehl, weil unterschiedliche Datentypen in der Spalte vorliegen |
IMEX=1;TypeGuessRows=0; in den ConnectString anfügen.
Dies verhindert a) durch TypeGuessRows die automatische Interpretation bis Zeile 0 (also gar nicht) und setzt durch IMEX=1 im Zweifel alles auf Text. OLE-DB ExtendedProperties="..." ist nicht identisch mit der ODBC Einstellungen (TypeGuessRows wird nur bei ODBC untertützt). |
Fehlermeldungen beim Einlesen von EXCEL Daten |
CursorLocation=clClient in den ConnectString anfügen.
Dies verhindert den Fehlerdialog / Exception. |
ß im Feldnamen als ss auslesen |
Tabelle und alle Felder qualifizieren, z.B. tab.[straße] AS "strasse". Ohne Qualifizierung interpretiert der Treiber automatisch intern ß als ss, gibt aber weiter ß aus und man kann keinen Alias setzen. |
Daten nur lesen (schneller) |
Connection auf StaticCursor setzen. |