AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken unbekannter Fehler beim Zugriff auf Exceldatei aus einer Dll
Thema durchsuchen
Ansicht
Themen-Optionen

unbekannter Fehler beim Zugriff auf Exceldatei aus einer Dll

Ein Thema von v2afrank · begonnen am 27. Sep 2010 · letzter Beitrag vom 28. Sep 2010
Antwort Antwort
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
573 Beiträge
 
Delphi XE2 Professional
 
#1

unbekannter Fehler beim Zugriff auf Exceldatei aus einer Dll

  Alt 27. Sep 2010, 13:26
Datenbank: Excel • Version: 8.0 • Zugriff über: ADO
Ich habe hier eine Dll, in der ich auf eine Exceldatei zugreife. Jetzt ist mir aufgefallen, dass ab und zu folgender Fehler kommt:EOleException Unbekannter Fehler.
Ich habe das ganze mal in eine Testdll zusammengefasst, die ich 5000 mal hintereinander aufrufe. Das ganze habe ich einmal auf einem Windows 7 Rechner und auf einem Vista Rechner laufen lassen. Das Ergebnis ist ganz interessant. Manchmal kommt das Testprogramm durch, manchmal bekomme ich den unbekannten Fehler nach ca. 100 Durchläufen. Auf dem Windows 7 Rechner scheint der Fehler weniger häufig zu passieren, er tritt hier aber auch auf.
Hier der Code der Dll:
Delphi-Quellcode:
library DllTest;

{ Wichtiger Hinweis zur DLL-Speicherverwaltung: ShareMem muss sich in der
  ersten Unit der unit-Klausel der Bibliothek und des Projekts befinden (Projekt-
  Quelltext anzeigen), falls die DLL Prozeduren oder Funktionen exportiert, die
  Strings als Parameter oder Funktionsergebnisse übergeben. Das gilt für alle
  Strings, die von oder an die DLL übergeben werden -- sogar für diejenigen, die
  sich in Records und Klassen befinden. Sharemem ist die Schnittstellen-Unit zur
  Verwaltungs-DLL für gemeinsame Speicherzugriffe, BORLNDMM.DLL.
  Um die Verwendung von BORLNDMM.DLL zu vermeiden, können Sie String-
  Informationen als PChar- oder ShortString-Parameter übergeben. }



uses
  SysUtils,
  Classes,
  DB, ADODB;

{$R *.res}

 procedure ExportExcelListe(ExcelDatei:Shortstring;Arbeitsblatt:Shortstring;
                            Spalte:Shortstring);
 var
  ADOConnection : TADOConnection;
  ADOQuery : TADOQuery;
  begin
ADOConnection := TADOConnection.Create(nil);
ADOConnection.LoginPrompt := False;
ADOConnection.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0; Data Source=' + ExcelDatei + ';Extended Properties=Excel 8.0';
ADOQuery := TADOQuery.Create(nil);
ADOQuery.Connection := ADOConnection;
ADOQuery.SQL.Text := 'Select '+Spalte+' from ' + Arbeitsblatt + '';
ADOQuery.Open;
ADOQuery.Close;
ADOConnection.Close;
ADOQuery.Free;
ADOConnection.Free;
  end;


 exports
  ExportExcelListe;
begin

end.
Und der Code wie ich die Dll teste:
Delphi-Quellcode:
unit Fuchstest;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm7 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form7: TForm7;

 procedure ExportExcelListe(ExcelDatei:Shortstring;
                            Arbeitsblatt:Shortstring;
                            Spalte:Shortstring );external 'DllTest.dll';
implementation

{$R *.dfm}

procedure TForm7.Button1Click(Sender: TObject);
var n:Integer;
begin
 for n := 1 to 5000 - 1 do
   begin
   caption:=inttostr(n);
   Application.ProcessMessages;
 ExportExcelListe('c:\Ressourcen.xls',
  '[Texte$]',
 'Deutsch');
   end;
end;

end.
Das ganze habe ich mit Delphi 2010 kompiliert
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: unbekannter Fehler beim Zugriff auf Exceldatei aus einer Dll

  Alt 27. Sep 2010, 13:46

Delphi-Quellcode:

 ExportExcelListe('c:\Ressourcen.xls',
  '[Texte$]',
 'Deutsch');
das fällt mir auf den ersten Blick auf. Seit XP hat eigentlich niemand (Benutzer) etwas im RootDirectory zu suchen.

Versuch es doch mal mit "C:\temp\Ressourcen.xls"

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
573 Beiträge
 
Delphi XE2 Professional
 
#3
  Alt 27. Sep 2010, 13:53
In der eigentlichen Anwendung ist die Dateim im Dokumenteverzeichnis des Users. Ich habe es nur zu Testzwecken nach C:\ kopiert, da ich zu faul war den kompletten Pfad auf dem zweiten Rechner anzulegen.

Ich habe das ganze mitlerweile auch mal in ein Programm (also ohne Dll)gepackt, das Ergebnis ist aber das gleiche

Geändert von Daniel (27. Sep 2010 um 14:23 Uhr) Grund: Zwei Beiträge auf Wunsch des Autors zusammengefasst.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

AW: unbekannter Fehler beim Zugriff auf Exceldatei aus einer Dll

  Alt 27. Sep 2010, 14:28
Guck dir mal den Ressourcenverbrauch von Windows/deines Programmes an. Ich tipp mal darauf das irgendwo Speicher/Ressourcen verloren werden und das irgendwann mal Windows für deinen Prozess *dicht* macht und keine weiteren mehr zuteilt.

Exceldateien würde ich direkt per COM/Automatisierung lesen und ADO/JET/Access außen vorlassen. Über den ADO-Weg gibt es öfters Probleme
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
573 Beiträge
 
Delphi XE2 Professional
 
#5

AW: unbekannter Fehler beim Zugriff auf Exceldatei aus einer Dll

  Alt 28. Sep 2010, 06:16
Der Speicher steigt schon leicht an. Ich befürchte aber, dass mir nichts anderes übrig bleibt als auf einer anderen Art die Daten auszulesen. So ist das ganze zu heikel.
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: unbekannter Fehler beim Zugriff auf Exceldatei aus einer Dll

  Alt 28. Sep 2010, 10:31
Ruf doch mal Coinitialize im Initialisierungsbereich der DLL auf.
  Mit Zitat antworten Zitat
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
573 Beiträge
 
Delphi XE2 Professional
 
#7

AW: unbekannter Fehler beim Zugriff auf Exceldatei aus einer Dll

  Alt 28. Sep 2010, 11:03
Habe ich gemacht und nach einigen Versuchen den Fehler wieder bekommen
  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 02:07 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