Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi textdatei import (https://www.delphipraxis.net/102450-textdatei-import.html)

freddiiii 29. Okt 2007 09:00

Datenbank: MySQL & MS-SQL • Zugriff über: ADO

textdatei import
 
So liebste DP-Community, ich nerve mal wieder mit einem oft wiederholten thema, man möge es mir verziehen.
Also ich habe momentan folgendes Problem:
Ich habe eine .cvs Datei und muss diese jeweils in eine MSSQL- und ebenfalls in eine MySQL-Datenbank übertragen.
Excel und Access Datenbanken zu importieren ist kein Problem, aber mit dem .cvs krieg ichs aus mir noch unerfindlichen Gründen nicht hin.

Ich habe mir gedacht die .cvs Datei zu einer .txt zu machen und dann per folgendem SQL-String diese zu importieren:
(MSSQL)
SQL-Code:
SELECT * INTO testtabelle FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Driver=Microsoft Text Driver (*.txt); DBQ=C:\tmp', 'Select * from [testdatei#txt]')
was zu folgendem Fehler führt -> Der OLE DB-Anbieter "Microsoft.Jet.OLEDB.4.0" für den Verbindungsserver "(null)" hat die Meldung "Installierbares ISAM nicht gefunden." zurückgeben.
Meldung 7303, Ebene 16, Status 1, Zeile 1
Das Datenquellenobjekt des OLE DB-Anbieters "Microsoft.Jet.OLEDB.4.0" für den Verbindungsserver "(null)" kann nicht initialisiert werden.

Jedoch sollten die Verbindungsserver alle ordentlich eingerichtet sein, wesghalb mir es schwer fällt den Fehler zu verstehn?!

Mit dem LOAD Infile bei MySQL habe ich mich bisher noch nicht auseinandergestzt, weil ich erst das MSSQL-Problem lösen wollte.

Also schonmal vielen Dank für die Hilfe!


fred

grenzgaenger 4. Nov 2007 12:26

Re: textdatei import
 
wie wär's wenn du die textdatei (CSV) einfach separat einliesst und dann in die DB fortschreibst? dafür gibts IMHO vorgefertigte komponenten, im notfall geht auch 'n ganz normaler readln oder 'ne tStringlist.loadfromfile(blablabla). <HTH>

marabu 4. Nov 2007 14:20

Re: textdatei import
 
Hallo Fred,

warum willst du JET mit ins Boot nehmen?

SQL-Code:
select *
into testtabelle
from OpenRowset(
  'MSDASQL',
  'Driver={Microsoft Text Driver (*.txt; *.csv)};DefaultDir=C:\tmp;',
  'select * from testdatei.txt'
)
So funktioniert es bei mir. FieldDelimiter ist SLIST (Semikolon) aus den Regionalen Einstellungen. Erste Zeile enthält die Spaltennamen.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz