AutoCommit für SQLite

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
Lion
Beiträge: 182
Registriert: Mo 24. Mär 2014, 09:58

AutoCommit für SQLite

Beitrag von Lion »

Hallo zusammen,

ich habe, wie auf dem Screenshot zu sehen, eine SQLIte DB eingebunden und die Datensätze bis zum DBGrid durchgeschleust. Ich kann aber mit dem DBNavigator keine Datensätze einfügen, löschen oder ändern. Man sagte mir, dass da wohl ein AutoCommit fehlen würde, aber diesen habe ich aktiviert, nur das Einfügen, Ändern oder Löschen ist trotzdem nicht möglich. Was mache ich falsch?

Vielen Dank!
Dateianhänge
SQLite.PNG
SQLite.PNG (115.63 KiB) 1208 mal betrachtet

charlytango
Beiträge: 487
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz 2.0 fixes FPC 3.2 fixes
CPU-Target: Win 32Bit, 64bit
Wohnort: Wien

Re: AutoCommit für SQLite

Beitrag von charlytango »

Lion hat geschrieben:
Fr 6. Aug 2021, 09:47
Ich kann aber mit dem DBNavigator keine Datensätze einfügen, löschen oder ändern.
Ohne ein kleines Beispielprojekt wird da kaum jemand etwas valides sagen können.

Nur weil ich selber gern in solche Fallen laufe: Hast du dem Navigator den korrekten Datasource zugeordnet?

Lion
Beiträge: 182
Registriert: Mo 24. Mär 2014, 09:58

Re: AutoCommit für SQLite

Beitrag von Lion »

charlytango hat geschrieben:
Fr 6. Aug 2021, 11:29
Lion hat geschrieben:
Fr 6. Aug 2021, 09:47
Ich kann aber mit dem DBNavigator keine Datensätze einfügen, löschen oder ändern.
Ohne ein kleines Beispielprojekt wird da kaum jemand etwas valides sagen können.

Nur weil ich selber gern in solche Fallen laufe: Hast du dem Navigator den korrekten Datasource zugeordnet?
Grüße Dich,
ja, dem Navigator wurde die korrekte Datasource zugeordnet. Im Anhang befindet sich das Projekt.
Gruß
Dateianhänge
PC-DB.zip
(859.35 KiB) 53-mal heruntergeladen

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1094
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Winux (L 2.0.11 FPC 3.2)
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: AutoCommit für SQLite

Beitrag von fliegermichl »

Ich hab das eben mal schnell zusammengeklickt. Bei mir funktioniert es, unabhängig von der Option sqoAutoCommit, wie erwartet.
Wenn ich SQLQuery.ReadOnly auf true setze, kann ich auch nichts einfügen aber dann auch nicht editieren.

Lion
Beiträge: 182
Registriert: Mo 24. Mär 2014, 09:58

Re: AutoCommit für SQLite

Beitrag von Lion »

fliegermichl hat geschrieben:
Fr 6. Aug 2021, 11:56
Ich hab das eben mal schnell zusammengeklickt. Bei mir funktioniert es, unabhängig von der Option sqoAutoCommit, wie erwartet.
Wenn ich SQLQuery.ReadOnly auf true setze, kann ich auch nichts einfügen aber dann auch nicht editieren.
Ja... komisch, bei mir geht's nicht. Kannst Du mir Dein Projekt schicken? :mrgreen:

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1094
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Winux (L 2.0.11 FPC 3.2)
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: AutoCommit für SQLite

Beitrag von fliegermichl »

Wenn ich dein Projekt öffnen will, geht Lazarus in eine Endlosschleife (Lazarus Trunk 2.3.0 mit FPC Trunk 3.3.1)
Dateianhänge
GridTestProjekt.zip
Mein Testprojekt
(985.03 KiB) 58-mal heruntergeladen

Lion
Beiträge: 182
Registriert: Mo 24. Mär 2014, 09:58

Re: AutoCommit für SQLite

Beitrag von Lion »

fliegermichl hat geschrieben:
Fr 6. Aug 2021, 12:36
Wenn ich dein Projekt öffnen will, geht Lazarus in eine Endlosschleife (Lazarus Trunk 2.3.0 mit FPC Trunk 3.3.1)
Vielen Dank! Aber leider kann ich das nicht öffnen, da Lazarus 2.0.12 habe. Ich suche dann nach einem anderen Weg.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 5185
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: AutoCommit für SQLite

Beitrag von af0815 »

Bin nicht am PC.

Damit eine Datenmenge geändert werden kann, muss die Query auch wissen was der Primäre Schlüssel ist. Der Hintergrund ist, das die Query versucht die richtigen Insert, Update und Delete Statement zu erstellen (oder erraten). Das geht aber nur dann, wenn der primäre Schlüssel gefunden wird.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten