Hallo,
ich habe das Problem, dass ich mehrere Exceldateien in eine Interbase(Firebird RC 1.5) einlesen muss.
Das öffnen mit
ADO ist kein Problem. Die Werte in Interbase zu spielen auch nicht.
So könnte z.B. der ConnectionString aussehen:
Code:
sExcelConnectionString ='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Exceldatei.xls;Extended Properties=Excel 8.0;Persist Security Info=False';
und so das
SQL-Statement
SELECT * FROM [Tabelle1$]
Das Problem ist, dass wenn ich über
ADO ein Excelarbeitsblatt als Datenbank öffne bestimmt
ADO den FieldType. Ich vermute mal das geschieht über den ersten Datensatz. Wenn die Tabelle aber wie folgt auf gebaut ist, kommt das Problem:
Code:
A B C
EX1 1234 Ein Text
VBN A400 Noch ein Text
Wenn
ADO den FieldType über den ersten Datensatz bestimmt wird Spalte B zum Type Double(
ADO nimmt wirklich Double anstatt Integer). Wenn jetzt der zweite Datensatz gelesen wird kommt es bei Spalte B zum einem Fehler. Es steht ja ein Text im zweiten Datensatz in Spalte B.
Jetzt die Frage: Wie kann ich die Fieldtypen bestimmen.
Dann würde ich von vornherein sagen dass Spalte B einen String enthält.