AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Schwerwiegender Fehler, TClientDataSet
Thema durchsuchen
Ansicht
Themen-Optionen

Schwerwiegender Fehler, TClientDataSet

Ein Thema von u880 · begonnen am 27. Jul 2017 · letzter Beitrag vom 31. Jul 2017
Antwort Antwort
u880

Registriert seit: 7. Okt 2015
Ort: Brandenburg
21 Beiträge
 
Delphi 10 Seattle Professional
 
#1

AW: Schwerwiegender Fehler, TClientDataSet

  Alt 28. Jul 2017, 09:55
So. Ich habe inzwischen sqlite3 von der Website https://www.sqlite.org/ in die VM heruntergeladen.
SQlite3 ist installiert.
Der PATH ist auf den Standort eingestellt (Laufwerk C:\... in derVM)
Ich habe den Pfad in der CMD auf den Ordner meines Projektes gesetzt und dann sqlite gestartet.
Im weiteren habe ich nach Anleitung aus dem Video, die testdb.db im Ordner meines Projektes erstellt.
Delphi Berlin 10.1 Architect wurde in der VM neu gestartet.

Beim Zugriff auf die Tabellen im Daten-Explorer erscheint der Fehler "Externe Exception C06D007F", obwohl der PATH den Suchpfad zum Treiber enthält und sqlite3 in der CMD läuft.

Details:
Code:
[7637B802]{KERNELBASE.dll} RaiseException + $62
[1C781B64]{DBXSqliteDriver240.bpl} SysInit.@_delayLoadHelper2 (Line 380, "C:\Builds\tp\runtime\rtl\sys\delayhlp.cpp" + 157) + $5
[1C781BAD]{DBXSqliteDriver240.bpl} SysInit.@_delayLoadHelper2 (Line 394, "C:\Builds\tp\runtime\rtl\sys\delayhlp.cpp" + 171) + $D
[5280C176]{DbxCommonDriver240.bpl} Data.DBXCommon.TDBXContext.Trace (Line 11168, "Data.DBXCommon.pas" + 1) + $F
[1C7825A5]{DBXSqliteDriver240.bpl} System.Sqlite.sqlite3.dll (Line 1421, "System.Sqlite.pas" + 0) + $5
[1C78D536]{DBXSqliteDriver240.bpl} Data.DbxSqlite.TDBXSqliteReader.Create (Line 1517, "Data.DbxSqlite.pas" + 12) + $5
[1C78A995]{DBXSqliteDriver240.bpl} Data.DbxSqlite.TDBXSqliteCommand.DerivedExecuteQuery (Line 616, "Data.DbxSqlite.pas" + 13) + $14
[52808575]{DbxCommonDriver240.bpl} Data.DBXCommon.TDBXCommand.ExecuteQuery (Line 8960, "Data.DBXCommon.pas" + 4) + $4
[52808AC3]{DbxCommonDriver240.bpl} Data.DBXCommon.TDBXMorphicCommand.ExecuteQuery (Line 9147, "Data.DBXCommon.pas" + 2) + $5
[528B71EC]{DbxCommonDriver240.bpl} Data.DBXMetaDataCommandFactory.TDBXDataExpressProviderContext.ExecuteQuery (Line 335, "Data.DBXMetaDataCommandFactory.pas" + 8) + $5
[528B2455]{DbxCommonDriver240.bpl} Data.DBXMetaDataReader.TDBXBaseMetaDataReader.FetchTables (Line 2386, "Data.DBXMetaDataReader.pas" + 25) + $1C
[528B1D01]{DbxCommonDriver240.bpl} Data.DBXMetaDataReader.TDBXBaseMetaDataReader.FetchCollection (Line 2261, "Data.DBXMetaDataReader.pas" + 15) + $1D
[528B79DB]{DbxCommonDriver240.bpl} Data.DBXMetaDataCommandFactory.TDBXMetaDataCommand.DerivedExecuteQuery (Line 597, "Data.DBXMetaDataCommandFactory.pas" + 1) + $12
[52808575]{DbxCommonDriver240.bpl} Data.DBXCommon.TDBXCommand.ExecuteQuery (Line 8960, "Data.DBXCommon.pas" + 4) + $4
[52808AC3]{DbxCommonDriver240.bpl} Data.DBXCommon.TDBXMorphicCommand.ExecuteQuery (Line 9147, "Data.DBXCommon.pas" + 2) + $5
[51A6F1E2]{dbexpress240.bpl} Data.SqlExpr.TCustomSQLDataSet.OpenSchema (Line 7012, "Data.SqlExpr.pas" + 126) + $B
[51A6D27E]{dbexpress240.bpl} Data.SqlExpr.TCustomSQLDataSet.ExecuteStatement (Line 6322, "Data.SqlExpr.pas" + 57) + $5
[51A66770]{dbexpress240.bpl} Data.SqlExpr.TCustomSQLDataSet.InternalOpen (Line 4042, "Data.SqlExpr.pas" + 1) + $2
[5117FC1E]{dbrtl240.bpl} Data.DB.TDataSet.DoInternalOpen (Line 12527, "Data.DB.pas" + 2) + $4
[5117FCCE]{dbrtl240.bpl} Data.DB.TDataSet.OpenCursor (Line 12556, "Data.DB.pas" + 3) + $0
[51A668AB]{dbexpress240.bpl} Data.SqlExpr.TCustomSQLDataSet.OpenCursor (Line 4074, "Data.SqlExpr.pas" + 10) + $4
[5117FB85]{dbrtl240.bpl} Data.DB.TDataSet.SetActive (Line 12508, "Data.DB.pas" + 12) + $7
[51A63CD2]{dbexpress240.bpl} Data.SqlExpr.TSQLConnection.OpenSchemaTable (Line 2914, "Data.SqlExpr.pas" + 9) + $7
[51A64AE9]{dbexpress240.bpl} Data.SqlExpr.TSQLConnection.OpenSchema (Line 3161, "Data.SqlExpr.pas" + 11) + $12
[51A64E52]{dbexpress240.bpl} Data.SqlExpr.TSQLConnection.GetTableNames (Line 3261, "Data.SqlExpr.pas" + 5) + $B
[1E22180E]{DataExplorerDBXPluginInt240.bpl} DbExpressIntImpl.FillEntities (Line 207, "DbExpressIntImpl.pas" + 14) + $A
[1E221A84]{DataExplorerDBXPluginInt240.bpl} DbExpressIntImpl.GetEntityNames (Line 268, "DbExpressIntImpl.pas" + 3) + $A
[1E221DA4]{DataExplorerDBXPluginInt240.bpl} DbExpressIntImpl.TDefaultConnection.GetTableNames (Line 372, "DbExpressIntImpl.pas" + 2) + $8
[1E1C0021]{DataExplorerDBXPluginInt240.bpl} DbExpressObjects.GetTableNames (Line 417, "DbExpressObjects.pas" + 3) + $A
[1E1C1AF5]{DataExplorerDBXPluginInt240.bpl} DbExpressObjects.TConnectionObject.GetTableNodes (Line 1048, "DbExpressObjects.pas" + 6) + $24
[500F90C5]{rtl240.bpl } System.Rtti.RawInvoke (Line 7648, "System.Rtti.pas" + 44) + $2
[500F94C7]{rtl240.bpl } System.Rtti.Invoke (Line 7872, "System.Rtti.pas" + 79) + $2
[500F02FD]{rtl240.bpl } System.Rtti.TRttiInstanceMethodEx.DispatchInvoke (Line 5794, "System.Rtti.pas" + 97) + $35
[500F9870]{rtl240.bpl } System.Rtti.TRttiMethod.Invoke (Line 9000, "System.Rtti.pas" + 1) + $18
[1B153A25]{bindengine240.bpl} System.Bindings.ObjEval.TObjectMethodInstance.Invoke (Line 1581, "System.Bindings.ObjEval.pas" + 22) + $29
[1B156998]{bindengine240.bpl} System.Bindings.ObjEval.TAbstractMemberInstance.QueryInterface (Line 2765, "System.Bindings.ObjEval.pas" + 11) + $2
[500A0662]{rtl240.bpl } System.SysUtils.Supports (Line 25564, "System.SysUtils.pas" + 1) + $9
[1B0CFA3B]{bindengine240.bpl} System.Bindings.Evaluator.Invoke (Line 1025, "System.Bindings.Evaluator.pas" + 6) + $A
[1B0CFDD3]{bindengine240.bpl} System.Bindings.Evaluator.TCompiledBinding.Evaluate (Line 1084, "System.Bindings.Evaluator.pas" + 42) + $14
[1B1315C7]{bindengine240.bpl} System.Bindings.ExpressionDefaults.TBindingExpressionDefault.Evaluate (Line 168, "System.Bindings.ExpressionDefaults.pas" + 5) + $16
[1C76688E]{DataExplorerService240.bpl} StructureViewServices.TExprItem.EvaluateValueRec (Line 548, "StructureViewServices.pas" + 37) + $8
[0EE72A92]{DataExplorerIDE240.bpl} ExplorerNodesHelper.TDataNodeHelper.AddOrRefreshChildNodes (Line 367, "ExplorerNodesHelper.pas" + 23) + $27
[0EE727F9]{DataExplorerIDE240.bpl} ExplorerNodesHelper.TDataNodeHelper.AddChildNodes (Line 289, "ExplorerNodesHelper.pas" + 1) + $12
[0EE94F6A]{DataExplorerIDE240.bpl} ExplorerTree.TExplorerTreeFrame.VirtualStringTree1Expanding (Line 491, "ExplorerTree.pas" + 10) + $24
[2151A7DD]{vclide240.bpl} IDEVirtualTrees.TBaseVirtualTree.DoExpanding (Line 18803, "IDEVirtualTrees.pas" + 3) + $D
[21528EDD]{vclide240.bpl} IDEVirtualTrees.TBaseVirtualTree.ToggleNode (Line 28878, "IDEVirtualTrees.pas" + 69) + $8
[21519114]{vclide240.bpl} IDEVirtualTrees.TBaseVirtualTree.DetermineHitPositionLTR (Line 17973, "IDEVirtualTrees.pas" + 76) + $11
[2151DE04]{vclide240.bpl} IDEVirtualTrees.TBaseVirtualTree.HandleMouseDblClick (Line 20947, "IDEVirtualTrees.pas" + 38) + $4
[21517038]{vclide240.bpl} IDEVirtualTrees.TBaseVirtualTree.WMLButtonDblClk (Line 16555, "IDEVirtualTrees.pas" + 6) + $8
[50AA3B32]{vcl240.bpl } Vcl.Controls.TControl.WndProc (Line 7313, "Vcl.Controls.pas" + 91) + $6
[50A855B7]{vcl240.bpl } Vcl.Graphics.FreeMemoryContexts (Line 7056, "Vcl.Graphics.pas" + 12) + $8
[0DCD514C]{TrackingSystem240.bpl} TrackingSystemHelp.CBTHookProc (Line 211, "TrackingSystemHelp.pas" + 27) + $F
[50AA7EDD]{vcl240.bpl } Vcl.Controls.TWinControl.IsControlMouseMsg (Line 9914, "Vcl.Controls.pas" + 9) + $2A
[50AA867D]{vcl240.bpl } Vcl.Controls.TWinControl.WndProc (Line 10143, "Vcl.Controls.pas" + 158) + $6
[21521BF0]{vclide240.bpl} IDEVirtualTrees.TBaseVirtualTree.WndProc (Line 23582, "IDEVirtualTrees.pas" + 32) + $4
[50AA7C9C]{vcl240.bpl } Vcl.Controls.TWinControl.MainWndProc (Line 9850, "Vcl.Controls.pas" + 3) + $6
[50170DFC]{rtl240.bpl } System.Classes.StdWndProc (Line 17187, "System.Classes.pas" + 8) + $0
[2150942B]{vclide240.bpl} IDEVirtualTrees.TVirtualTreeHintWindow.IsHintMsg (Line 7067, "IDEVirtualTrees.pas" + 7) + $13
[50BEEDE7]{vcl240.bpl } Vcl.Forms.TApplication.ProcessMessage (Line 10534, "Vcl.Forms.pas" + 23) + $1
[50BEEE2A]{vcl240.bpl } Vcl.Forms.TApplication.HandleMessage (Line 10564, "Vcl.Forms.pas" + 1) + $4
[50BEF15D]{vcl240.bpl } Vcl.Forms.TApplication.Run (Line 10702, "Vcl.Forms.pas" + 26) + $3
Jedenfalls kann i c h in den Details nicht "lesen".
Was kann ich tun?
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

AW: Schwerwiegender Fehler, TClientDataSet

  Alt 28. Jul 2017, 10:07
Wenn Du den Pfad in 'ner CMD setzt, so gilt diese Änderung nur in genau dieser CMD und nicht für die übrigen Prozesse.

Die Pfadänderunmg "musst" Du in der Systemsteuerung machen.

Wenn Du in Deinem Programm mal am Anfang ShowMessage(GetEnvironmentVariable('PATH')); einfügst, ist dort die Pfadangabe dann korrekt, d. h.: Befindet sich die DLL in einem der dort aufgeführten Verzeichnisse oder im Programmverzeichnis?
  Mit Zitat antworten Zitat
u880

Registriert seit: 7. Okt 2015
Ort: Brandenburg
21 Beiträge
 
Delphi 10 Seattle Professional
 
#3

AW: Schwerwiegender Fehler, TClientDataSet

  Alt 28. Jul 2017, 12:55
Die Variable PATH wurde von mir in der Systemsteuerung auf den Ordner mit dem sqlite3 Treiber gesetzt.
Mein Satz dazu "Der PATH ist auf den Standort eingestellt (Laufwerk C:\... in derVM)"

Der weitere Text beschreibt das Erstellen der SQlite Datenbank in der CMD, unter Zuhilfenahme von sqlite3.
Mein Satz dazu "Ich habe den Pfad in der CMD auf den Ordner meines Projektes gesetzt und dann sqlite gestartet."

Inzwischen habe ich auf deinen Rat über ShowMessage die Variable 'PATH' anzeigen lassen.
Der Ordner mit dem Treiber ist enthalten!

Ich werde mal mit sqlite3 im Projektpfad eine leere Datenbank erzeugen und aus dem Delphi Projekt eine Tabelle einpflegen,
um dann zu testen, ob ich diese Tabelle mit SQlite3 lesen kann (select * from DelphiTabelle)

Irgendwo ist da der Haken.

Vielen Dank für deine Ratschläge.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#4

AW: Schwerwiegender Fehler, TClientDataSet

  Alt 28. Jul 2017, 14:24
Was mir gerade aus älteren Delphizeiten einfällt und mich auch schon den einen oder anderen Nerv gekostet hat:

Wenn man ein Programm aus der IDE startet, ist das Arbeitsverzeichnis eventuell das Verzeichnis der IDE-Exe und nicht das Verzeichnis des ausgeführten Programmes.

Es kann dann schonmal passieren, dass nicht alles dort gefunden wird, wo es liegt, weil im Verzeichnis der IDE gesucht wird und nicht im Verzeichnis des Programmes.

Eventuell mal im FormCreate an den Anfang ein ChDir(ExtractFilePath(Application.ExeName)); machen. Ist zwar unelegant, aber eventuell kommst Du damit ja zumindest für die Entwicklungszeit erstmal zu einem definierten Verhalten.

In Delphi 7 kann man im Menü Start im Untermenü Parameter über einen Dialog das Arbeitsverzeichnis einstellen.

Wenn Du bei Deiner Version auch diese Option hast, so stell' dort bitte mal das Verzeichnis Deines Programmes ein (als Alternative zu dem obigen Beispiel mit ChDir).

Bitte überprüfe einmal, ob die Angabe zum Fundort der Datenbankdatei in Deinem Programm sinngemäß diesem Beispiel entspricht:

database=C:\\SQLite\\SQLite_Tools\\StaleySQLiteDB. db

Deine Fehlermeldung wird auch hier erwähnt:

https://stackoverflow.com/questions/...c06d007f-means
https://forums.embarcadero.com/threa...hreadID=215090

Und dann frag' bitte mal bei der Suchmaschine Deiner Wahl nach "exception c06d007f" sqlite, es müssten dort ein paar Beiträge aus diversen Foren auftauchen. Ob auch hilfreiche dabei sind, hab' ich nicht geprüft.

Geändert von nahpets (28. Jul 2017 um 14:25 Uhr) Grund: Schreibfehler behoben
  Mit Zitat antworten Zitat
u880

Registriert seit: 7. Okt 2015
Ort: Brandenburg
21 Beiträge
 
Delphi 10 Seattle Professional
 
#5

AW: Schwerwiegender Fehler, TClientDataSet

  Alt 28. Jul 2017, 14:46
So langsam sprechen wir eine Sprache.... ;0)

Ich habe das hier vor zwei Stunden gefunden.
************************************************** *
https://stackoverflow.com/questions/...ckexchange.com

I think different version (You need SQLite3 version 3.8.4.3 04/03/2014)

Download from http://www.sqlite.org/download.html Dll File : 'Precompiled Binaries for Windows' sqlite-dll-win32-x86-3080403.zip(323.29 KiB)
Extraction File (sqlite-dll-win32-x86-3080403)
Copy and paste "sqlite3.dll" (631KB)
c:\Windows\System32
c:\Windows\SysWOW64

http://www.sqlite.org/amalgamation.html
************************************************** *

Ich hatte noch keine Gelegenheit, mich darüber zu vertiefen.
Mein Bauch sagt mir jedoch, da steckt die Lösung!
**Wochenende**
  Mit Zitat antworten Zitat
u880

Registriert seit: 7. Okt 2015
Ort: Brandenburg
21 Beiträge
 
Delphi 10 Seattle Professional
 
#6

AW: Schwerwiegender Fehler, TClientDataSet

  Alt 31. Jul 2017, 08:38
Inzwischen fand ich diesen Punkt.

https://forums.embarcadero.com/threa...hreadID=215090

in einem Post vom Jun 22, 2016
DbExpress was deprecated some years ago and I think it will not be developed in the future.
If you're going to rewrite your program I recommend you to use the new set of components FireDAC.

Kann hier zu jemand aus der Community etwas beitragen?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.071 Beiträge
 
Delphi 12 Athens
 
#7

AW: Schwerwiegender Fehler, TClientDataSet

  Alt 31. Jul 2017, 08:44
Da du nur die Professional Edition hast, hast du auch kein FireDAC, es sei denn du kaufst es dazu.
Es ist allerdings sehr viel angenehmer damit zu arbeiten...

Bei dbExpress hatte ich schon viele schöne Überraschungen, die sich hauptsächlich um Pfade gedreht haben und um das Finden der richtigen INIs.
Das lässt sich wie so vieles am einfachsten mit dem Process Monitor prüfen. Da siehst du genau worauf da eigentlich zugegriffen wird.

Und bei TClientDataSet fällt mir noch ein:
Hast du MidasLib in die uses deines Projekts eingebunden? Wenn nicht, musst du auch die midas.dll mitliefern, wenn du ein TClientDataSet verwenden möchtest.
Sebastian Jänicke
AppCentral
  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 22:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz