Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Warum kommt eine exception? (https://www.delphipraxis.net/190012-warum-kommt-eine-exception.html)

BBoy 20. Aug 2016 13:19

Datenbank: sql • Version: ? • Zugriff über: sqlconnection

Warum kommt eine exception?
 
Bin immer noch dabei an diesem Tutorial zu arbeiten: https://www.delphi-treff.de/tutorial...d-dbexpress/2/

Dieser Code:
Delphi-Quellcode:
var
FSQLCommandText: String;
FSQLDataSet: TDataSet;
try
  SQLConnection1.Connected := True;
  FSQLCommandText := 'SELECT * FROM Buecher;';
  SQLConnection1.Execute(FSQLCommandText, NIL, FSQLDataSet);
Except On E: EDatabaseError Do ShowMessage(E.Message);
end;
Führt zu einer Exception: EExternalException C06D007F
Wenn ich anhalten klicke kommt dann ein Fenster Quelldatei nicht gefunden: delayhlp.cpp

Wie kann ich das beheben?

nahpets 20. Aug 2016 13:25

AW: Warum kommt eine exception?
 
Sieht so aus, als hätte die Datenbank mit Deinem SQL ein Problem.

Lass am Ende des Selects mal das Semikolon weg.

Das ist eigentlich ein übliches Trennzeichen für mehrere Statements, die man per Batch ... aus 'ner Datei oder 'ner Datenbankoberfläche absetzen möchte.

Bei 'nem einzelnen Statement (für ExecSQL ...) aber eher unüblich.

BBoy 20. Aug 2016 13:32

AW: Warum kommt eine exception?
 
Hat leider nichts gebracht.

Muss ich vielleicht bei der sqlconnection noch etwas einstellen? TableScope oder ähnliches. die sqlite3.dll ist im Windowspfad und im Anwendungsordner.

Leider sieht man nicht wie alt das Tutorial "SQLite3 mit Delphi und dbExpress" ist. Blöd wenn man lernen will und es geht nicht :(
https://www.delphi-treff.de/tutorial...und-dbexpress/

Kann mir jemand ein anderes sehr einfaches Tutorial empfehlen womit ich sqllite in einfachen Schritten lernen kann ohne ein Studium machen zu müssen??

SQL Datenbank habe ich erstellt, Daten kann ich auch eintragen aber nun möchte ich die Daten abfragen und auf einer Maps Karte anzeigen.

hoika 20. Aug 2016 14:08

AW: Warum kommt eine exception?
 
Hallo,
vielleicht muss das DataSet ja erst erzeugt werden?

Uwe Raabe 20. Aug 2016 15:21

AW: Warum kommt eine exception?
 
Die Exception kommt z.B. auch dann, wenn die SQLITE3.DLL nicht zum verwendeten DBExpress-Treiber passt.

BBoy 20. Aug 2016 17:03

AW: Warum kommt eine exception?
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1345352)
Die Exception kommt z.B. auch dann, wenn die SQLITE3.DLL nicht zum verwendeten DBExpress-Treiber passt.

War alles bei meinem Delphi so dabei, habe nichts von außen geholt. Daher denke ich es sollte zusammen passen.

Zitat:

Zitat von hoika (Beitrag 1345350)
Hallo,
vielleicht muss das DataSet ja erst erzeugt werden?

Denke ich mir auch. Denn bisher weiß ja dieses Dataset nichts von den Feldern aus meiner sql Datenbank. In diesem Tutorial wird davon aber nichts erwähnt :(

Wie bekomme ich nun die Felder mit typ und allem aus meiner sql Datenbank in dieses TDataSet ?
Oder ist das nicht nötig?
Oder gibt es andere Möglichkeiten die Daten in meiner sql datenbank nacheinander abzufragen und auf einer Karte anzuzeigen? Das sollte doch auch mit sqlquery irgendwie funktionieren oder?


Edit://
Habe es nun so versucht:
Code:
SQLBefehl :String;
begin
  sqlconnection1.Connected := true;
  SQLBefehl:='SELECT * FROM spawnpoints;';
  try
    SQLQuery1.SQL.Text := SQLBefehl;
    SQLQuery1.Active := true;
  except
    on E: Exception do
      showmessage('Exception raised with message: ' + E.Message);
  end;
Gleiches Problem. externalexception ......

Ich habe auch mal eine kleine neue Datenbank angelegt, gleiches problem :(

Hier meine Parameter aus der sqlconnection:
Driver Unit: Data.DbxSqlite
Driver Package Loader: TDBXSqliteDriverLoader,DBXSqliteDriver230.bpl
MetaDataPAckageLoader: TDBXSqliteMetaDataCommandFactory,DbxSqliteDriver23 0.bpl
FailIfMissing: True
Database: c:\eigene dateien\delphi_projekte\map\test99.db


Was kann ich noch versuchen?

BBoy 20. Aug 2016 18:04

AW: Warum kommt eine exception?
 
Endlich.... Habe alle sqlite3.dll gelöscht die ich irgendwo gefunden habe. Dann die aktuellen 32bit heruntergeladen, nur in systemwow64 kopiert und nun funktioniert alles einwandfrei. :-D

jaenicke 21. Aug 2016 00:24

AW: Warum kommt eine exception?
 
In das Systemverzeichnis kopieren sollte man nicht machen. Lege die besser in das Verzeichnis deiner Anwendung.

Denn was, wenn ein anderes Programm die DLL in einer anderen Version benötigt?

Wenn du später einen MSI-Installer erstellst, kümmert der sich darum (Stichwort Side-By-Side-Konfiguration), aber ohne Installer sollte man die DLLs dann in das Anwendungsverzeichnis legen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:23 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