Open Database() mit csv/txt-Beispiel?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hat jemand ein Open Database()-Beispiel für ODBC'ing in eine .csv- oder .txt-Datei?Ich kann ODBC mit Excel 2007 .xlsx zum Laufen bringen, habe aber die Textdatei-Verbindungszeichenfolge zum Öffnen einer CSV-Datei nicht richtig abgeleitet.Ich verweise sogar über den Windows ODBC-Datenquellen-Administrator auf die korrekte "Benutzer-DSN"-Namenszeichenfolge.Ich frage mich also, ob ich unten die falsche "DriverId" habe?danke... dj
Das funktioniert:
dt_excel=Datenbank öffnen("DSN=Excel-Dateien xlsx;DBQ=C:\Data.xlsx;DriverId=790;MaxBufferSize=2048;PageTimeout=5;","SELECT *","Ergebnis");
Das funktioniert nicht:
dt_csv=Datenbank öffnen("DSN=Textdatei;DBQ=C:\Data.csv;DriverId=27;MaxBufferSize=2048;PageTimeout=5;","SELECT *","Ergebnis");
Betreff: Open Database() mit csv/txt-Beispiel?Hallo MS, ja, gestern Abend habe ich es endlich herausgefunden!Ja, es ist genau das, was Sie oben in Bezug auf die Syntax gepostet haben.Danke, dass Sie auf diesen Thread geantwortet haben.Fürs Protokoll, hier ist, was ich über die Durchführung eines ODBC in einer Textdatei gelernt habe.Es hat wirklich nichts mit JSL zu tun, sondern mit der Branchenkonvention/Syntax, die erforderlich ist, um ODBC in einer Textdatei selbst auszuführen:
a. schema.ini erstellen – Diese Datei muss erstellt werden, um das Textdateiformat zu unterstützen.Legen Sie es im selben Verzeichnis wie die Textdatei ab.Einfach über Notepad zu erstellen.Google schema.ini für ODBC-Textdatei für Details.
b. Verwenden Sie die korrekte ODBC-Syntax - anders als beispielsweise die ODBC-DBQ-Zeichenfolge von Excel verweist die ODBC-DBQ-Zeichenfolge der Textdatei nicht auf den Pfad + Dateinamen, sondern nur auf den Pfad.Daran bin ich hängengeblieben.Das funktioniert also (genau wie Sie oben gepostet haben - der Schlüssel besteht darin, auf DBQ= und nicht auf DBQ= zu verweisen und dann den Dateinamen in die SQL FROM-Anweisung aufzuteilen):
dt_csv=Datenbank öffnen("DSN=Textdatei;DBQ=C:\;","SELECT * FROM Data.csv","Ergebnis");
c. Kleines Detail - nur eine Anmerkung.Wenn Sie Win7 verwenden, gibt es zwei verschiedene Speicherorte für den ODBC-Manager.Einer ist der 32-Bit-Speicherort und der andere der 64-Bit-Speicherort.Microsoft nannte sie wie Grönland und Island (irgendwie irreführend).Beachten Sie dies nur, wenn Sie den ODBC-Textdateitreiber hinzufügen/ändern.Ich höre in Win8, dass sie diese separaten Namen oder Bezeichner irgendwie erstellen können.
Win7 ODBC-Manager:
32-Bit: C:\Windows\SysWOW64\odbcad32.exe
64-Bit: C:\Windows\System32\odbcad32.exe
Wie auch immer, das obige a.) + b.) erlaubt mir, JSL zu ODBC zu einer Rohtextdatei zu verwenden.Sehr schön... ...dj
Betreff: Open Database() mit csv/txt-Beispiel?Hast du diese Variante ausprobiert? Mit einer Beispieldatei hat es funktioniert, allerdings hatte ich Probleme mit Trennzeichen. Aber ich habe zumindest eine Tabelle mit (durcheinandergebrachten) Daten aus der Textdatei.
dt_csv = Datenbank öffnen ( "DSN=Textdatei;DBQ=C:\;" , "SELECT * FROM Data.csv" , "Ergebnis" ) ;
Betreff: Open Database() mit csv/txt-Beispiel?Danke Tschad.Ich habe versucht, die Zeichenfolge „DriverId“ und andere nachfolgende Zeichenfolgen zu entfernen, und erhalte dieselbe Fehlermeldung.Es ist, als ob es meinen Textdateitreiber nicht finden kann (obwohl es im Windows ODBC-Manager gut aussieht).Sonst habe ich eine Art Tippfehler/Nichtübereinstimmung in meiner Verbindungszeichenfolge?Seltsam, da das Ganze in Excel hervorragend funktioniert (aber meine Datendateien sind CSV-Dateien, daher möchte ich sie lieber nicht in .xlsx-Dateien konvertieren, um ODBC zu verwenden).
Das funktioniert nicht:
dt_csv=Datenbank öffnen("DSN=Textdatei;DBQ=C:\Data.csv;","SELECT *","Ergebnis");
Daraus resultierende Fehlermeldung:
[Microsoft][ODBC-Texttreiber] „(unbekannt)“ ist kein gültiger Pfad.Stellen Sie sicher, dass der Pfadname richtig geschrieben ist und dass Sie mit dem Server verbunden sind, auf dem sich die Datei befindet.
Betreff: Open Database() mit csv/txt-Beispiel?Ich glaube nicht, dass ich in meinen DSN-Strings jemals auf "DriverId" verwiesen habe.Funktioniert es, wenn du es ganz weglässt?