Speichern in einer SQLite Datenbank (Zeoslib)

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
stinketier
Beiträge: 40
Registriert: Di 3. Mär 2015, 15:35

Speichern in einer SQLite Datenbank (Zeoslib)

Beitrag von stinketier »

Hallo zusammen,

ich habe irgendwie ein kleines Problem.
ich hab eine SQLite Datenbank mit einen DBGrid und einer dbCheckbox verbunden.

Über das Grid kann ich einen eintrag auswählen und diese dann mit der DBCheckbox "abharken".

das geht auch alles ohne Probleme.

damit der Eintrag auch wirklich gespeichert wird muss ich es ja über den DBNavigator speichern. (kann ich das irgendwie auf autosave Stellen?)


das macht er auch alles

nur wenn ich die Anwendung schliesse und wieder öffne sind die eintragungen weg :(


wodran kann das liegen?
ich bekomme keine Fehlermeldungen

in den Eigenschaften von der zConnection -> zQuery -> DataSource habe ich ReadOnly auf False gesetzt.

hat jemand eine idee?

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Speichern in einer SQLite Datenbank (Zeoslib)

Beitrag von Michl »

Hast du ZConnection.AutoCommit auf True?

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

stinketier
Beiträge: 40
Registriert: Di 3. Mär 2015, 15:35

Re: Speichern in einer SQLite Datenbank (Zeoslib)

Beitrag von stinketier »

jap

dadran hab ich auch schon gedacht :(

hach da stimmt doch irgendwas in der installation nicht so wirklich

stinketier
Beiträge: 40
Registriert: Di 3. Mär 2015, 15:35

Re: Speichern in einer SQLite Datenbank (Zeoslib)

Beitrag von stinketier »

ich glaube ich baue heuteabend mal ein beispielprogramm zusammen

ist ein bissel blöd zuerklären :(

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Speichern in einer SQLite Datenbank (Zeoslib)

Beitrag von Christian »

Das ist normal, du musst .Post des Datasets aufrufen oder die Zeile wechseln damit die Editierte Zeile gespeichert wird.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

stinketier
Beiträge: 40
Registriert: Di 3. Mär 2015, 15:35

Re: Speichern in einer SQLite Datenbank (Zeoslib)

Beitrag von stinketier »

das hat echt super geklappt

vielen vielen dank

nun hab ich nur noch ein Problem.

ich habe ein Editfeld eingebaut mit welchen ich Filtern kann
das geht auch echt super.

Code: Alles auswählen

 
    zquery1.SQL.Text := 'select ort, anwesend, kontakt, bemerkung from stadt where ort like "%'+ edit1.Text +'%" order by id';
    zquery1.Active   := true;
 


nur wenn ich dann was ändere und auf Save klicke kommt die Meldung unten:
Die Meldung kommt aber nur wenn ich was Gefiltert habe

womit hängt das zusammen?
Dateianhänge
SaveMeldung.jpg
SaveMeldung.jpg (28.42 KiB) 2344 mal betrachtet

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Speichern in einer SQLite Datenbank (Zeoslib)

Beitrag von Christian »

Zeos scheint hier den Datensatz der geändert wurd enicht zuordnen zu können. Dein Feld id sollte der Primary key sein. Irgendwo konnte mand as im Dataset auch nochmal separat sagen. Bei mir ist das ID Feld immer auch als unique primary key angelegt damit gibts solche Probleme nicht.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: Speichern in einer SQLite Datenbank (Zeoslib)

Beitrag von MacWomble »

Es könnte auch sein, dass einem Feld mit der NotNull-Eigenschaft kein Wert zugewiesen wurde, das muss also nicht zwangsläufig an der ID liegen.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

stinketier
Beiträge: 40
Registriert: Di 3. Mär 2015, 15:35

Re: Speichern in einer SQLite Datenbank (Zeoslib)

Beitrag von stinketier »

hmmm

kann irgendwie doch nicht sein
also wenn ich die ganze liste ausgebe dann geht es ja

wenn ich aber select * from bal Where ort = 'hamburg' anzeige und dann in der bemerkung von hamburg was reinschreibe
dann bekomme ich die meldung

ich mache nur update
nix weiter :(

Code: Alles auswählen

CREATE TABLE [stadt] (
[id] INTEGER  NOT NULL PRIMARY KEY AUTOINCREMENT,
[ort] VARCHAR(200)  NULL,
[anwesend] BOOLEAN  NULL,
[kontakt] BOOLEAN  NULL,
[wikilink] VARCHAR(800)  NULL,
[bemerkung] BLOB  NULL
)

stinketier
Beiträge: 40
Registriert: Di 3. Mär 2015, 15:35

Re: Speichern in einer SQLite Datenbank (Zeoslib)

Beitrag von stinketier »

mal nee andere Frage

ist da tDataset.Post überhaupt richtig?
wo ist der unterschied zum TDataset.UpdateRecort?

ich update ja nur
ich will ja kein insert machen

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: Speichern in einer SQLite Datenbank (Zeoslib)

Beitrag von MacWomble »

dann selektier die ID mal mit...
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Speichern in einer SQLite Datenbank (Zeoslib)

Beitrag von Christian »

wie kommst du drauf das wenn er ein "select * ..." macht die ID nicht dabeisein sollte ??

Und ja Post ist richig. Hast du nun nen Primary key ?
Poste mal deine Tabellenstruktur.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: Speichern in einer SQLite Datenbank (Zeoslib)

Beitrag von MacWomble »

Hm, ich meine mich erinnern zu können, dass das gestern noch nicht "select *" war und die ID nicht mit angegeben wurde.
Aber eventuell habe ich Tomaten auf den Augen gehabt :shock: (Glaub ich aber nicht)
Die Struktur der Tabelle steht doch auch da ... :twisted:
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

stinketier
Beiträge: 40
Registriert: Di 3. Mär 2015, 15:35

Re: Speichern in einer SQLite Datenbank (Zeoslib)

Beitrag von stinketier »

ohhh nein wie peinlich

ganz klar wenn ich beim filtern das sql so ändere das die id rausffliegt das er dann die nicht mehr findet ist klar

vielen dank
es geht nun alles :D

Antworten