Autor Beitrag
Schaberick
Hält's aus hier
Beiträge: 5

Win 10, Win 11
Delphi 10.4 Comm., Delphi 10.0 Prof., Visual Studio 2019, Unity, Blender
BeitragVerfasst: Do 23.02.23 20:27 
Hallo zusammen,

vor kurzem habe ich mir bei Embarcadero das Delphi 10.4 Community Edition heruntergeladen und meine erste relationale SQLite-Datenbank aufgebaut. Hat bisher alles funktioniert. Dann habe ich die Datenbank etwas umstrukturiert und hatte eine Kleinigkeit in einem Select-Befehl (SELECT * FROM Kunden WHERE ID = 1) übersehen. Das Feld heißt nun nicht mehr ID sondern ID_KUNDEN. Also kracht es. Aber anstatt dass Delphi mir eine vernünftige Fehlermeldung herausgibt, wie man es eigentlich gewohnt ist, erscheint:

Quelldatei nicht gefunden: FireDAC.Phys.SQLiteWrapper.pas

Ich wollte mal hören, ob ihr diese Meldung kennt und vielleicht die entsprechenden Dateien irgendwo auf der Festplatte habt. Oder kennt jemand eine Quelle, wo man sich die fehlenden Dateien herunterladen kann, damit ich eine vernünftige Fehlermeldung und keinen gefühlten Zusammenbruch von Delphi bekomme.

Als SQLite-Anfänger hat man noch nicht das scharfe Auge, um sofort erkennen zu können, um was es sich hier handelt.

Es erscheint leider auch dieselbe Meldung, wenn man beispielsweise schreibt:
UPDATE Kunden SET City='Oslo', Country='Norway'; und man "sitzt" während der Austauschaktion z.B. mit dem Programm "DB Browser for SQLite" in der Datenbank und bearbeitet sie gerade. Dann kann nämlich das soeben über Delphi gestartete Programm nicht alle Datensätze bearbeiten.

Wenn bei beiden - unterschiedlichen - Fehlern dieselbe Meldung erscheint, hilft einem das nicht weiter. Wäre die Datei SQLiteWrapper.pas aber existent (oder noch mehr, wer weiß das...), dann würde sicher eine vernünftige Meldung erscheinen.

Hoffentlich kann mir jemand helfen.

Liebe Grüße vom Delphi-Wiedereinsteiger
André

Moderiert von user profile iconTh69: SQL-Tags hinzugefügt
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4791
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 24.02.23 09:05 
Hallo und :welcome:,

du wirst wohl eine Exception erhalten haben und die IDE möchte dann zu dem Source-Code springen.
SQLite arbeitet per Locking, d.h. man muß als Anwender auf Exceptions gefaßt sein und entsprechend reagieren (z.B. zeitverzögert nochmal eine neue Anfrage stellen).

Am besten du zeigst mal einen Screenshot der gesamten Fehlermeldung (als Dateianhang zu einem Beitrag hinzufügen).
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19288
Erhaltene Danke: 1743

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 24.02.23 09:47 
Ich kann in dem Zusammenhang nur Everything empfehlen. Da findest du in Millisekunden Dateien überall auf der Festplatte. In diesem Fall:

2023-02-24

Leider existiert diese Datei unter Delphi 10.4, anders als bei der Vorgängerversion (im Screenshot, es sind beide installiert), nicht mehr. Es gibt nur noch die .dcu. Das gilt sowohl für die Community Edition wie auch die Professional Edition.

Kompilieren und starten klappt aber und der Fehler kommt, wenn das Programm läuft? Oder klappt schon das Kompilieren nicht? Aber das sehen wir auch, wenn du einen Screenshot zeigst.
Einloggen, um Attachments anzusehen!
Schaberick Threadstarter
Hält's aus hier
Beiträge: 5

Win 10, Win 11
Delphi 10.4 Comm., Delphi 10.0 Prof., Visual Studio 2019, Unity, Blender
BeitragVerfasst: Sa 25.02.23 19:20 
Hallo zusammen,

die Datei existiert tatsächlich in den von Sebastian genannten Versionen nicht mehr, so sagte mir auch Embarcadero. Soll wohl so sein.
Wie setzt man denn hier einen Screenshot von der Fehlermeldung ein? Mit STRG+V will mir das nicht gelingen.
Meine Festplatte hatte ich von Hand durchsucht. Nein, keine Sorge, das hat keine Stunden gedauert, das geht doch mit dem CMD und DIR FireDAC.Phys.SQLiteWrapper.pas /s relativ fix.
Aber dieses "Everything" werde ich mir mal ansehen.

Das Programm lässt sich kompilieren, es läuft auch. Nur wenn dann dieser besagte Select-Befehl mit ungültigen Anweisungen, also mit einem ungültigen Feldnamen ausgeführt wird, kracht es.
Ich würde gern den Screenshot hier einfügen, aber ich glaube, hier brauche ich mal Hilfe.

Hab mir Everything gerade heruntergeladen und installiert. Ist ja klasse, das Teil. Vielen Dank für den Tipp !

Ja, ich erhalte eine Exception, und dann muss man raten, da die IDE mir nicht den Grund verrät. Als ich dann gefühlte 20x auf die Zeile geblickt hatte, sah ich, dass ich noch den alten Feldnamen angesprochen hatte. Eine Erklärung, dass es den Feldnamen "ID" nicht gibt, wäre hier hilfreich gewesen. Aber das geht dann wohl nur, wenn man die besagte Datei besitzt.

Macht Embarcadero das vielleicht, damit man die Vollversion kauft?

Gruß, André


Nachtrag 12.03.2023: Mittlerweile habe ich im Quellcode einen Weg gefunden, dieses Problem zu umgehen. Ich werte hier einfach die Exception aus:

Beispiel
========

with FD_KonjugationenQuery do begin
...try
......SQL.Text := 'SELECT * FROM Konjugationen;';
......Open;

......while not eof do begin
.........if FieldByName( 'IS_LOCKED' ).Text = csID then begin
............Edit;
............FieldByName( 'IS_LOCKED' ).Text := '';
............Post;
.........end;
.........Next;
.........Application.ProcessMessages;
......end;
......Close;
......SQL.Clear;
...except on E: Exception do // Hier ist die Stelle, an der es im Zweifelsfall kracht
......begin
.........// "MsgDlg" ist eine ziemlich umfangreiche, von mir geschriebene Messagebox, die sich in der Breite und Höhe an die übergebene Textmenge anpasst. Man kann
.........// Die Button-Anzahl der Antwort-Buttons in der Box bis auf 5 hochreizen und die Buttons selbst beschriften. Den Initial ausgewählten Button kann man auch wählen.
.........// Ferner kann man den Typ der MessageBox auf Info, Warning... anpassen. Wer am Quellcode interessiert ist, kann mir gern eine Nachricht schreiben.
.........MsgDlg( 'Datensatzsperren entfernen', 'Im Table "Konjugationen" konnten die eigenen Datensatzsperren nicht entfernt werden. Bitte Programm beenden und erneut starten.
.........Fehlercode: ' + E.Message, '&OK', 1, mtWarning, self ); // Das E.Message spuckt meinen gesuchten Fehler aus. Man kann auch "except on E: DatabaseError do" in die
.........// abfangende Anweisung setzen. Aber das wisst ihr sicher alles schon. Wie gesagt, ich bin Wiedereinsteiger.
.........MainForm.Close;
.........exit;
......end;
...end;
end;


Grüße aus Brühl und noch mal Danke für die Hilfe. Irgendwann werde ich meine Signatur sicher aufhübschen. Da habe ich momentan aber leider keine Zeit für. Geht ja auch so.
Und wenn mal jemand Lust hat, kann er mir gern zeigen, wie man den Quellcode so einfügt, dass er formatiert bleibt. Die Punkte sehen ja nicht so toll aus.


Zuletzt bearbeitet von Schaberick am So 12.03.23 17:38, insgesamt 1-mal bearbeitet
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19288
Erhaltene Danke: 1743

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 25.02.23 21:32 
user profile iconSchaberick hat folgendes geschrieben Zum zitierten Posting springen:
Wie setzt man denn hier einen Screenshot von der Fehlermeldung ein?
Unter dem Eingabefenster findest du "Dateianhang hinzufügen":
entwickler-ecke.de/h....html&sub=,19,27

user profile iconSchaberick hat folgendes geschrieben Zum zitierten Posting springen:
Ja, ich erhalte eine Exception, und dann muss man raten, da die IDE mir nicht den Grund verrät.
Die Exception enthält auf jeden Fall die entsprechende Fehlermeldung, auch ohne die dazugehörige Quelltextdatei. Und selbst wenn du deaktiviert hast, dass bei der Exception angehalten wird (unter Tools --> Optionen, siehe letzten Screenshot), siehst du es noch in der Debuggerausgabe. Ich habe die Fehlermeldung jeweils markiert:

IDEmitException

IDEFileNotFound

IDEOptionsExceptions

user profile iconSchaberick hat folgendes geschrieben Zum zitierten Posting springen:
Macht Embarcadero das vielleicht, damit man die Vollversion kauft?
Wie gesagt: Die Datei ist auch darin nicht enthalten. Warum, weiß ich nicht.
Einloggen, um Attachments anzusehen!

Für diesen Beitrag haben gedankt: Schaberick