Probleme und Fragen

<< 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.