» Willkommen auf Software «

OberstHorst
aus Taunusstein
offline



OC God
16 Jahre dabei !

Intel Core i7
2800 MHz


:moin::moin: zusammen,

ich habe ein etwas "exotischeres" Problem und hoffe, dass mir hier jemand helfen kann.

Ich frage per SQL via ODBC direkt auf CSV-Dateien ab. Theoretisch funktioniert das auch alles super. Praktisch habe ich allerdings das Problem, dass der Treiber mir aus welchen Gründen auch immer die Formate vorschlägt. Hin und wieder passt das, aber vereinzelt wird mir in den Metadaten INTEGER angegeben, obwohl FLOAT oder gar CHAR Werte enthalten sind. Wenn in einem solchen Feld (INT) zum Beispiel eine Fließkommazahl steht, werden einfach die Nachkommastellen abgeschnitten.

Ein Workaround wäre die Zahlen alle in Quotes zu setzen. Aber das wäre nicht so die eleganteste Lösung. Per mid(feldname,1) darauf hinzudeuten, dass es sich um ein CHAR Feld handelt funktioniert leider nicht, da die Metadaten wohl bereits vom Treiber vergeben werden.

Vielleicht hat ja jemand eine Idee...

E: PS: Das erstellen der CSV erfolgt per VBA. Vielleicht lässt sich hier schon was drehen?!

(Geändert von OberstHorst um 11:26 am Juni 19, 2013)


<-- Killerspielespieler
Geh doch zum MediaMarkt und lass dich da beraten...

Beiträge gesamt: 6824 | Durchschnitt: 1 Postings pro Tag
Registrierung: Nov. 2007 | Dabei seit: 5975 Tagen | Erstellt: 11:23 am 19. Juni 2013
ocinside
aus Krefeld
offline



Administrator
22 Jahre dabei !

Intel Core i9
3600 MHz @ 5200 MHz
78°C mit 1.552 Volt


Du müßtest das direkt bei der ODBC Verbindung vorgeben.
Ich hatte das mal mit OleDB über die schema.ini Datei gelöst, wo du dann in der schema.ini jede einzelne Spalte mit:
Col1=XYZ1 Float
Col2=XYZ2 Integer
Col3=XYZ3 LongChar
etc. eindeutig formatierst.


Hardware News lesen * Unterhalten * Smarthome und Gadgets
Übertakten, Modding und Testberichte * Fanartikel kaufen

Beiträge gesamt: 169566 | Durchschnitt: 20 Postings pro Tag
Registrierung: April 2001 | Dabei seit: 8368 Tagen | Erstellt: 12:21 am 19. Juni 2013
OberstHorst
aus Taunusstein
offline



OC God
16 Jahre dabei !

Intel Core i7
2800 MHz


OK klingt schon mal gut.
Aber wenn ich verschiedene CSVs einlesen möchte, dann müsste ich für jedes Sheet eine extra Verbindung + INI anlegen, oder?


<-- Killerspielespieler
Geh doch zum MediaMarkt und lass dich da beraten...

Beiträge gesamt: 6824 | Durchschnitt: 1 Postings pro Tag
Registrierung: Nov. 2007 | Dabei seit: 5975 Tagen | Erstellt: 12:41 am 19. Juni 2013
ocinside
aus Krefeld
offline



Administrator
22 Jahre dabei !

Intel Core i9
3600 MHz @ 5200 MHz
78°C mit 1.552 Volt


Nee, das schreibst du alles untereinander in eine einzige schema.ini Datei.
Also z.B.:
Code
[datei1.csv]
ColNameHeader=False
Format=Delimited( )
MaxScanRows=0
CharacterSet=OEM
Col1=XYZ1 Float
Col2=XYZ2 Integer
Col3=XYZ3 LongChar
[datei2.csv]
ColNameHeader=False
Format=TabDelimited
MaxScanRows=0
CharacterSet=OEM
Col1=XYZ1 Float
Col2=XYZ2 Integer
Col3=XYZ3 LongChar
[datei3.csv]
ColNameHeader=False
Format=TabDelimited
MaxScanRows=0
CharacterSet=OEM
Col1=XYZ1 Float
Col2=XYZ2 Integer
Col3=XYZ3 LongChar


Hardware News lesen * Unterhalten * Smarthome und Gadgets
Übertakten, Modding und Testberichte * Fanartikel kaufen

Beiträge gesamt: 169566 | Durchschnitt: 20 Postings pro Tag
Registrierung: April 2001 | Dabei seit: 8368 Tagen | Erstellt: 13:10 am 19. Juni 2013
OberstHorst
aus Taunusstein
offline



OC God
16 Jahre dabei !

Intel Core i7
2800 MHz


Super... danke :thumb::ocinside:


<-- Killerspielespieler
Geh doch zum MediaMarkt und lass dich da beraten...

Beiträge gesamt: 6824 | Durchschnitt: 1 Postings pro Tag
Registrierung: Nov. 2007 | Dabei seit: 5975 Tagen | Erstellt: 14:02 am 19. Juni 2013