AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Excel einlesen mit einer bdpConnection
Thema durchsuchen
Ansicht
Themen-Optionen

Excel einlesen mit einer bdpConnection

Ein Thema von diComm · begonnen am 2. Feb 2005 · letzter Beitrag vom 3. Feb 2005
Antwort Antwort
diComm

Registriert seit: 26. Jan 2005
68 Beiträge
 
#1

Excel einlesen mit einer bdpConnection

  Alt 2. Feb 2005, 11:33
Bin gerade dabei mit Delphi2005 eine WinForm Applikation zu erstellen, die Daten aus verscheidenen Datenbanken wie auch aus Excel lesen soll und in eine andere beliebige Datenbank schreiben soll.

der Teil mit den Datenbanken klappt auch ganz prima, allerdings schaffe isch es nicht, über die bdpConnection auf eine Exceldatei zuzugreifen.

Kennt jemand den benötigten Connectionstring oder ist das Grundsätzlich nicht möglich?
  Mit Zitat antworten Zitat
Benutzerbild von Treffnix
Treffnix

Registriert seit: 25. Jun 2003
Ort: AC
740 Beiträge
 
Delphi 7 Professional
 
#2

Re: Excel einlesen mit einer bdpConnection

  Alt 2. Feb 2005, 12:04
Ging sowas denn mit älteren Delphi-Versionen? Habs nie versucht, weil ich überhaupt nicht auf die Idee gekommen wäre, aber es würde mich wundern.

Excel ist eine Tabellenkalkulation, keine Datenbank. Nichtmal annähernd. Wenn du auf Excel zugreifen willst, geht das über OLE. Allerdings wirst du auch so nicht mit Datensätzen arbeiten können, sondern die einzelnen Excelsheets parsen müssen.
  Mit Zitat antworten Zitat
diComm

Registriert seit: 26. Jan 2005
68 Beiträge
 
#3

Re: Excel einlesen mit einer bdpConnection

  Alt 2. Feb 2005, 13:12
Mit ADOConnection war es möglich, Excel Dateien wie Datenbanken zu behandeln und sogar SQL Befehle waren möglich.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

Re: Excel einlesen mit einer bdpConnection

  Alt 2. Feb 2005, 13:18
Also mit dem OleDBProvider und Zugriff auf den "alten" JET-OLEDB-Provider sollte es auch noch unter D2005 gehen. Aber ob die BDPConnection das auch kann? Darauf würde ich nicht wetten.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#5

Re: Excel einlesen mit einer bdpConnection

  Alt 2. Feb 2005, 13:45
Ich weiß nicht, wie oft ich es noch predigen muss...
Schmeiß den BDP am besten gleich aus der ToolPalette, das Ding bringt dir rein gar nichts, was eine überlegte Klassenstruktur nicht 100-mal besser kann.
ein ADO.Net Provider verwendet Klassen, die bestimmte Interfaces implementieren müssen, das heißt: Wenn du eine Instanz IRGENDEINER connection bekommst, kannst du damit ALLES erledigen.
Du übergibst deinen Klassen einfach einen Parameter vom Typ System.Data.IDbConnection.
Kleines, sinnbefreites Beispiel:
Code:
void DoSomething(IDbConnection connection, string sqlStatement)
{
  IDbCommand cmd = conneciton.CreateCommand();
  cmd.CommandText = sqlStatement;
  IDbDataReader rdr = cmd.ExecuteReader();
  while(rdr.Read())
  {
    ...
  }
}
btw: Ich kann da sniper ( ) nur Recht geben würde und sogar noch etwas weiter gehen: Wer Excel zur Datenerfassung verwendet sollte fristlos entlassen werden.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.606 Beiträge
 
#6

Re: Excel einlesen mit einer bdpConnection

  Alt 2. Feb 2005, 13:55
Zitat von Robert_G:
Schmeiß den BDP am besten gleich aus der ToolPalette, das Ding bringt dir rein gar nichts, was eine überlegte Klassenstruktur nicht 100-mal besser kann.
Erm, passt zwar nicht zum Topic, aber trotzdem:
Mit den normalen ADO.net - Objekten kann ich nicht mal schnell sagen: "Nee, Junge (also meine Software) MSSQL ist zwar schön und gut, aber HIER hats halt nur ne Oracle." - in einer Config ne Oracle eintragen und die Software läuft dann auf der Ora. Dazu muss ich beim normalen ADO.net tatsächlich komplett andere Klassen verwenden und somit meine Software umschreiben (namespaces etc.). Beim BDP nicht.

Oder hast Du mir da einen konkreten Gegenvorschlag?
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
diComm

Registriert seit: 26. Jan 2005
68 Beiträge
 
#7

Re: Excel einlesen mit einer bdpConnection

  Alt 2. Feb 2005, 14:01
Tja, unsere Kunden haben eben keine bessere Iddee als irgendwelche Beispieldaten als .xls zu senden, die wir in unsere Datenbanken einchecken müssen...
Auch wenn ich das gerne tun würde, kann ich ihnen nicht befehlen, mir Daten ausschliesslich in Datenbanken zu übermitteln. So etwas würde hier eher zu einer fristlosen Kündigung führen als der unzweckmässige gebrauch von Excel
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#8

Re: Excel einlesen mit einer bdpConnection

  Alt 2. Feb 2005, 14:02
Zitat von Phoenix:
Oder hast Du mir da einen konkreten Gegenvorschlag?
Wie gesagt, arbeite in deinen Assemblies nicht mit den Klassen des Providers sondern nur mit den Interfaces.
Hast du eine Instanz einer IDbConnection (Egal ob es eine OracleConnection, FbConnection,.. ist) kannst du damit alles erzeigen, was du brauchst.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Excel einlesen mit einer bdpConnection

  Alt 3. Feb 2005, 07:35
Zitat von Phoenix:
Dazu muss ich beim normalen ADO.net tatsächlich komplett andere Klassen verwenden und somit meine Software umschreiben (namespaces etc.). Beim BDP nicht.
Und werden dadurch auch die SQL-Syntaxunterschiede versteckt? Vermutlich nicht. Und ich habe auch schon Performancevergleiche ADO.NET <-> BDP.NET gesehen, wo BDP.NET sehr alt ausgesehen hat.

Zum Thema zurück:

Alternativen wären auch:

- Einlesen der Excel-Dokumente per OLE/Automation-Interface von Excel.
- Verwenden eines native-Readers wie Flexel.NET von TMS-Software
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:35 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