Autor Beitrag
Ayumi
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mi 20.04.05 10:27 
Hallo,

ich arbeite erst seit kurzem mit Delphi und soll jetzt eine Anwendung schreiben die Daten automatisch aus Excel in eine Oracle Datenbank einliest. Als Delphi-Frischling habe ich gerade gar keine Idee wie ich vorgehen könnte. Kann mir jemand Code-bsp geben an denen ich mich orientieren könnte? (z.B. wie ich eine bestimmtes Wort aus einer Excel Spalte an die richtige Stelle in der Datenbank einlese) Ich habe schon in verschiedenen Büchern gesucht, aber nichts annäherend passendes gefunden.

Vielen lieben Dank im Voraus
Ayumi
Guzzman
Hält's aus hier
Beiträge: 1

Win XP
D4, D6 Prof
BeitragVerfasst: Mi 04.05.05 17:16 
Hi,

ich sehe dabei zwei Baustellen: Zum einen musst du die Daten aus Excel holen (mittels OLE) und diese dann mittels SQL in Oracle speichern.

Was mich dabei auch interessieren würde ist die Frage ob es auch nicht eine direkte Möglichkeit gibt, Exceldaten in Oracle zu speichern (z.B. mit TOAD).


Ciao

_________________
man definiere ε<0
Stefan.Buchholtz
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 612

WIN 2000, WIN XP, Mac OS X
D7 Enterprise, XCode, Eclipse, Ruby On Rails
BeitragVerfasst: Mi 04.05.05 17:27 
user profile iconGuzzman hat folgendes geschrieben:
Hi,

ich sehe dabei zwei Baustellen: Zum einen musst du die Daten aus Excel holen (mittels OLE) und diese dann mittels SQL in Oracle speichern.

Was mich dabei auch interessieren würde ist die Frage ob es auch nicht eine direkte Möglichkeit gibt, Exceldaten in Oracle zu speichern (z.B. mit TOAD).

Ciao


Meiner Meinung nach ist das mit OLE nicht unbedingt das einfachste. Ich würde die Tabelle aus Excel als CSV-Datei abspeichern und dann ein kleines Import-Tool schreiben, das die Daten in die Datenbank schiebt.

Wenn es sich um eine einmalige Aktion handelt, so dass es sich nicht lohnt, ein Programm dafür zu schreiben, kann man auch mit den Textmanipulations-Funktionen von Excel SQL-Anweisungen erzeugen, die man dann einfach mit dem SQL Explorer (oder anderem DB-Tool deiner Wahl) ausführt.

Stefan
eddyp
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 58



BeitragVerfasst: Mi 04.05.05 22:33 
... die Lösung über die CSV- Datei ist sicher die einfachste Variante. Es würde auch gehen die Daten im Excel direkt auszulesen, aber da ist das Format von excel- Version zu Excelversion verschieden und das müsste man berücksichtigen. Aber bei Bedarf kann ich ein paar Hinweise geben, da ich mal den umgekehrten Fall delphi- excel hatte.

_________________
Grüsse, eddyp
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 05.05.05 10:12 
Man kann natürlich auch noch eine ODBC-Verbindung zur Excel-Datei definieren und diese dann benutzen.
eddyp
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 58



BeitragVerfasst: Do 05.05.05 16:14 
... ODBC ist aber sehr langsam habe ich mal bemerkt, zumindest bei großen Dateien oder hatte ich was anderes falsch gemacht?

_________________
Grüsse, eddyp
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 05.05.05 18:09 
user profile iconeddyp hat folgendes geschrieben:
... ODBC ist aber sehr langsam habe ich mal bemerkt, zumindest bei großen Dateien oder hatte ich was anderes falsch gemacht?

ODBC ist zumindest schneller als BDE :mrgreen:

Du solltest den ODBC-Zugriff wie folgt konfigurieren:
- Read-Only-Modus
- Falls möglich, exclusiv

Das sollte die "höchste" Performanz bringen. Excel ist eben keine Datenbank.
eddyp
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 58



BeitragVerfasst: Do 05.05.05 18:48 
... ich meine das anders. Ich hatte eine Datei von der AS400 mit Daten als Text erstellt (geht blitzartig, auf der AS400). Diese habe ich am PC mittels Delphi direkt in eine Exceldatei geschrieben, also direkt eine *.XLS- Datei erzeugt [mit all den komischen Zeilen ;-) ]. Das ging viel schneller als die Daten per ODBC von der AS400 zu lesen.

(Ich hätte für den Zweck auch einfach eine CSV schreiben können, aber es sollte danach im (Delphi-)Programm auch noch eine Excel- Anwendung gestartet werden, welche die XLS verarbeitet und einem "unbedarften" Nutzer die ausgewerteten Daten in der Excelanwendung zur Verfügung stellt.)

Und das denke ich kann man umgedreht doch auch - die *.XLS- Datei lesen und die Daten daraus direkt schreiben wohin wann sie braucht (zB. in Oracle- Datei) Ist zwar aufwendig, aber geht wahnsinnig schnell, denke ich.

_________________
Grüsse, eddyp
eddyp
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 58



BeitragVerfasst: Do 05.05.05 18:48 
PS. also alles ohne BDE ...

_________________
Grüsse, eddyp