AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Mit D2005PE über ADO(?) Exceldatei Auslesen

Mit D2005PE über ADO(?) Exceldatei Auslesen

Ein Thema von glkgereon · begonnen am 4. Nov 2005 · letzter Beitrag vom 6. Nov 2005
Antwort Antwort
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#1

Mit D2005PE über ADO(?) Exceldatei Auslesen

  Alt 4. Nov 2005, 20:20
Hi

falls das die falsche Kategorie ist...einfach verschieben...wusst nicht so richitg wos hingehört.

Also, zum Problem

Ich habe eine xls-Datei die ich mit Delphi 2005 Personal auslesen will.
Die Daten möchte ich irgendwie per Hand auslesen, und später als String verwurschtelt an nen Server schicken der die in eine Datenbank einträgt.
Ein direkter Zugriff auf die Datenbank ist leider nicht vorgesehen/möglich/nutzbar.
Daher wollte ich die Daten direkt korrekt als Values vom MySQL-Query (INSERT INTO Bla VALUES (...)) als Parameter an ein Php-Script übergeben.

Ich habe nun nun (unteranderem hier) gelesen, das könne man relativ einfach mit ADO lösen.
nun zwei fragen:

Ist ADO nicht für Datenbanken? was hat das mit Excel zu tun?

zweitens:
Wo kriege ich ado her?
also ich habe zwar diesen Link zur MSDN gefunden, aber an Delphi hat es nichts geändert (was mich auch irgendwie gewundert hätte)
Edit: Diesen
Wie kann ich nun diese Sachen in Delphi importieren und/oder nutzen?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Mit D2005PE über ADO(?) Exceldatei Auslesen

  Alt 5. Nov 2005, 18:52
Zitat von glkgereon:
Ist ADO nicht für Datenbanken? was hat das mit Excel zu tun?
Ja - ADO ist für Datenbanken. Glücklicherweise läßt sich über ADO eine Exceltabelle als Datenbank ansprechen.
Der Zugriff erfolgt von Deinem Programm üder ADO -> JetEngine -> Excel.
Das ADO die Datenbank in einer Exceltabelle findet und über die JetEngine zugreiffen soll sagst Du über den ConnectionString:
Code:
sExcelConnectionString ='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"';
Um den Inhalt der Exceltabelle abzufragen verendest Du SQL. Der Excel-Tabellenblattname steht dann für den Tabellennamen innhalb des SQL-Statments. Achtung: Damit es funktioniert muss an den Tabellennamen ein $-Zeichen angehängt werden. Den Grund kennt bestimmt nur MS.
Code:
sExcelSQL = 'SELECT * FROM [%s$]';
  ...
  SQLStatement:=Format(sExcelSQL,['Tabelle1']);
Zitat von glkgereon:
Wo kriege ich ado her?
Ab Win2000 ist ADO standartmäßig dabei.

Ungünstig ist nur, das D2005 Personal keine Typebibliotheken importieren kann. D.h Du kannst nicht auf die frühe Bindung (verwende ich immer) zurückgreifen. Dir bleibt also nur der Weg über die späte Bindung (mit CreateOleObject und Varinats u.s.). Damit kenne ich mich aber nicht so aus.

Hier gibt die aktuelle Version MDAC (enthält die ADO Objekte)

Update für die JetEngine

Dort gibt esHilfe zu ADO
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#3

Re: Mit D2005PE über ADO(?) Exceldatei Auslesen

  Alt 5. Nov 2005, 18:59
Zitat von Jens Schumann:
Zitat von glkgereon:
Ist ADO nicht für Datenbanken? was hat das mit Excel zu tun?
Ja - ADO ist für Datenbanken. Glücklicherweise läßt sich über ADO eine Exceltabelle als Datenbank ansprechen.
Der Zugriff erfolgt von Deinem Programm üder ADO -> JetEngine -> Excel.
danke, wieder was gelernt...hört sich komisch an, is aber so

Zitat von Jens Schumann:
Zitat von glkgereon:
Wo kriege ich ado her?
Ab Win2000 ist ADO standartmäßig dabei.

Ungünstig ist nur, das D2005 Personal keine Typebibliotheken importieren kann. D.h Du kannst nicht auf die frühe Bindung (verwende ich immer) zurückgreifen.
Win2k hab ich... gibt es echt keine Möglichkeit das zu importieren?
Zum beispiel sources aus anderen D-Versionen anpassen oder so? (wahrscheinlich totaler Holzweg... )
Zitat von Jens Schumann:
Dir bleibt also nur der Weg über die späte Bindung (mit CreateOleObject und Varinats u.s.). Damit kenne ich mich aber nicht so aus.
Sieht dann der Qt in etwa wie folgt aus?
Delphi-Quellcode:
CoInitialize(nil);
FExcel:=CreateOleObject('Excel.Application');
FExcel.Visible:=False;
FWorkBook:=FExcel.WorkBooks.Open(FileName:=FFileName, lcid:=GetUserDefaultLCID);
FExcel.WorkBooks.Open(FFileName, emptyParam, emptyParam, emptyParam,
  emptyParam, emptyParam, emptyParam, emptyParam, emptyParam,
  emptyParam, emptyParam, emptyParam, emptyParam, GetUserDefaultLCID);}
FExcel.Close(False);
FExcel.Quit;
CoUnInitialize;
so versuche ich es bisher...hatte auf eine einfach alternative gehofft

Zitat von Jens Schumann:

Hier gibt die aktuelle Version MDAC (enthält die ADO Objekte)

Update für die JetEngine

Dort gibt esHilfe zu ADO
Wer ich mir mal angucken...
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.198 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Mit D2005PE über ADO(?) Exceldatei Auslesen

  Alt 6. Nov 2005, 13:02
Zitat von Jens Schumann:
Zitat von glkgereon:
Ist ADO nicht für Datenbanken? was hat das mit Excel zu tun?
Ja - ADO ist für Datenbanken. Glücklicherweise läßt sich über ADO eine Exceltabelle als Datenbank ansprechen.
Nicht ganz. ADO kann flexibler verwendet werden und für alle Datenquellen verwendet werden für die es einen ADO/OLE DB-Provider gibt. So ist z.B. auch der Zugrif auf den Index-Diesnt oder den Directory Service über ADO möglich.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 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