TSQLQuery mit TSQLite3Connection

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
twinkle
Beiträge: 14
Registriert: Di 12. Nov 2013, 23:53

TSQLQuery mit TSQLite3Connection

Beitrag von twinkle »

Wenn ich versuche einem TSQLQuery-Objekt eine Instanz von TSQLite3Connection zuzuweisen, erhalte ich die Meldung "Database not assigned". Ich vermute, dass diese beiden Komponenten nicht zusammen genutzt werden können? Es würde mir sehr weiterhelfen, wenn jemand Code für eine Konsolenanwendung posten könnte, die sich mit einer SQLite3-Datenbank verbindet und den Inhalt einer Tabelle anzeigt.

Danke, twinkle

knight
Beiträge: 802
Registriert: Mi 13. Sep 2006, 22:30

Re: TSQLQuery mit TSQLite3Connection

Beitrag von knight »

Bei mir funktioniert die Zuweisung ohne Probleme. Schreibe doch mal, welche Versionen du einsetzt.

knight

twinkle
Beiträge: 14
Registriert: Di 12. Nov 2013, 23:53

Re: TSQLQuery mit TSQLite3Connection

Beitrag von twinkle »

knight hat geschrieben:Bei mir funktioniert die Zuweisung ohne Probleme. Schreibe doch mal, welche Versionen du einsetzt.

knight
Könntest du vielleicht Beispielcode posten? Also wie du die einzelnen Komponenten auf einander beziehst? Ich habe erst gestern mit Lazarus losgelegt, weswegen es gut sein kann, dass ich einfach etwas falsch mache.

Code: Alles auswählen

 
  SQLiteLibraryName:='C:\Users\mkr\Desktop\sqlite3.dll';
  SQLite3Connection1.DatabaseName := 'C:\Users\mkr\Desktop\TestDb.db';
  SQLite3Connection1.Connected := true;
  SQLQuery1.sql.text := 'SELECT * FROM test';
  SQLQuery1.Database := SQLite3Connection1;
  SQLQuery1.Transaction := SQLTransaction1;
  SQLQuery1.ExecSQL;                           
 
Die Dateipfade stimmen. TestDB.db ist eine gültige SQLite3-Datenbank, die Tabelle "test" existiert ebenso. Vermutlich habe ich irgendein Property nicht gesetzt oder einen Methodenaufruf vergessen, ich überblicke die Objekteigenschaften nocht nicht so ganz :mrgreen:

knight
Beiträge: 802
Registriert: Mi 13. Sep 2006, 22:30

Re: TSQLQuery mit TSQLite3Connection

Beitrag von knight »

Die Methode ExecSQL wird bei Befehlen wie INSERT oder UPDATE verwendet. Wenn du Daten mittels SELECT abrufen möchtest, dann brauchst du die Methode Open. Noch ein Hinweis zur Reihenfolge der Befehle: Es ist besser, wenn du erst alle Eigenschaften setzt (inklusive der Verbindungen zwischen den Komponenten) und dann die Verbindung aktivierst (...connection..., ...transaction..., SQLQuery1.Open).

knight

twinkle
Beiträge: 14
Registriert: Di 12. Nov 2013, 23:53

Re: TSQLQuery mit TSQLite3Connection

Beitrag von twinkle »

knight hat geschrieben:Die Methode ExecSQL wird bei Befehlen wie INSERT oder UPDATE verwendet. Wenn du Daten mittels SELECT abrufen möchtest, dann brauchst du die Methode Open. Noch ein Hinweis zur Reihenfolge der Befehle: Es ist besser, wenn du erst alle Eigenschaften setzt (inklusive der Verbindungen zwischen den Komponenten) und dann die Verbindung aktivierst (...connection..., ...transaction..., SQLQuery1.Open).

knight
Danke für den Tipp! Werde ich nacher gleich mal ausprobieren. Mal sehen, ob dann die Fehlermeldung "database not assigned" ausbleibt! Ist doch anzunehmen, oder?

Antworten