Daten ohne Datenbankkomponenten aus SQLite Datenbank lesen

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
skfink
Beiträge: 28
Registriert: Do 20. Dez 2007, 20:39

Daten ohne Datenbankkomponenten aus SQLite Datenbank lesen

Beitrag von skfink »

Hallo,
wie komme ich an die Daten einer SQLite DB ran, ohne die Datenbankkomponenten (TDBImage, TDBEdit, ..etc.) zu verwenden? In der Wiki steht leider nur die Verwendung genau dieser Komponenten.
Mit der Verwendung von TSqlite3dataset.SQL könnte ich einfach die Daten in Form von 'SELECT * FROM tablexy'. Aber auch da stellt sich mir wieder die Frage, wie kriege ich die einzelnen Daten?

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Ich habe leider nicht mehr genau die Funktionen im Kopf die gehen, aber du könntest hier mal suchen:
http://www.delphipraxis.net/forum_main.html" onclick="window.open(this.href);return false;
ich meine da sollte was dazu stehen, wenn du glück hast kannst du das so auch in Lazarus verwenden.

Verwende doch ein TDataGrid... und verbinde sie entsprechend.
MFG
Michael Springwald

skfink
Beiträge: 28
Registriert: Do 20. Dez 2007, 20:39

Beitrag von skfink »

das was ich suche habe ich dort auch nicht gefunden. Ich möchte lieber direkt mit SQL Queries arbeiten statt Datenbankkomponenten zu verwenden, weil ich um die Datenbankkomponenten richtig verwenden zu können, ich mich erst Wochen-/Monatelang einarbeiten müsste. Die Zeit verbringe ich lieber damit schon effektiv zu programmieren.

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:

Beitrag von Christian »

Wiso musst du dich da Wochen/ Monatelang einarbeiten ?
Einfach z.b. ein TDBEdit auf die Form, Fieldname und DataSource gesetzt und schon läufts.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

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

Beitrag von af0815 »

Ev. mal die Beispiele von LazInfo/LazSnippets oder andere Quellen ansehen.

Normalerweise, wennst nichts siehtst dann hast du eh Probleme mit den Einstellungen in der entsprechenden Datasetkomponente. Und nicht mit den Anzeigekomponenten.

Ausserdem finde ich es besser zuerst die Basics zu kennen (ein wenig Einarbeiten) und dann erst wild zu klicken. Meine Meinung ist, man kann nur effektiv sein, wenn man die Komponenten kennt und weis was man tut. [Das ist meine Meinung und keine direkte Kritik]
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

skfink
Beiträge: 28
Registriert: Do 20. Dez 2007, 20:39

Beitrag von skfink »

Christian hat geschrieben:Wiso musst du dich da Wochen/ Monatelang einarbeiten ?
Einfach z.b. ein TDBEdit auf die Form, Fieldname und DataSource gesetzt und schon läufts.
aber in meinem Programm soll ja auch etwas mehr geschehen als das. Bilder, Strings, Texte, StringListen auf verschiedene Komponenten und auch nicht nur einzelne Datensätze sondern mehrere gleichzeitig dargestellt, aber nicht in einer Tabelle sondern in unter einander erscheinenden Panels. Mag sein dass, das mit den vorgefertigten Komponenten auch alles geht, möglichweise liegt auch daran dass ich noch kein vernünftiges Tutorial gefunden habe. Werde mal schauen was LazSnippets zu bieten hat.

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

Beitrag von af0815 »

Schon mal mit einer Query probiert und dort zur Laufzeit mit FieldByName("Feldname").AsXXXX die Felder geholt ? Bzw. die Fieldseigenschaft der Query betrachtet ?

Übrigends sind nicht nur Tutorials interessant, sonden man kann sich viel ansehen direkt im Quellcode.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

@skfink
das was du vorhast sollte mit SQL-Lite gehen, ich habe das unter Delphi genommen weil es nicht anders gab bzw. ich nix anders gefunden habe für meine Delphi Version.

Ich müsste erstmal meine Sicherungen durchsuchen, ob ich da noch ein "Altes" Projekt finde. Evlt. hilft das ja, ich meine auch das SQL-Lite noch einige Fehler hat in Lazarus, welche weiß ich im Moment nicht mehr genau.

Du kannst aber ruhig die Komponenten nehmen. Du verbindest sie dann halt nicht mit Datenbank Komponenten. In Lazarus wird soviel wie ich davon noch weiß, die Einträge einer Tabelle in einem Array abgelegt.

Aber auch hier müsste ich erst nachschauen, wie das noch ging. Ich hatte in der Wiki Von Lazarus auch ein Tutorial gefunden.
MFG
Michael Springwald

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:

Beitrag von Christian »

ich hab beim prometheus mit SQLite recht wenig probleme, ich denke eigentlich nicht das da sonderlich Fehler drin sind. Wenn du doch was gefunden hast beschreib es bitte mal genauer.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

skfink
Beiträge: 28
Registriert: Do 20. Dez 2007, 20:39

Beitrag von skfink »

wer sich für eine "direkte" Verwendung der SQL Befehle mit SQLite interessiert, dem könnte damit http://www.itwriting.com/sqlitesimple.php geholfen sein.

Ich selbst gebs erstmal auf mit den DB-Geschichten und löse mein Problem mit typisierten Daten und MemoryStream. Zumindest kann ich auf diesem Wege auch problemlos Bilder speichern.

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

Beitrag von af0815 »

skfink hat geschrieben:Ich selbst gebs erstmal auf mit den DB-Geschichten und löse mein Problem mit typisierten Daten und MemoryStream. Zumindest kann ich auf diesem Wege auch problemlos Bilder speichern.
Wenn du ein Beispiel machst, wo GENAU dein Problem ist. Eventuell mit einem Demo, so könnte man dir vielleicht einfacher helfen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

skfink
Beiträge: 28
Registriert: Do 20. Dez 2007, 20:39

Beitrag von skfink »

Also um mal zusammenzufassen: Ich habe ein Datasource das meine Datenbank darstellt und ein Dataset pro Tabelle. Aber kann es sein dass man zwingend ein TDBGrid braucht?
Ohne läuft bei mir nix, wenn ich das aber so einstellen will bei in dem sqlite tutorial für fpc geschrieben steht (Tut 1), dann kann ich die Kolonnen die die Namen "Name" und "Email" bekommen sollen gar nicht umbenennen. Wo soll das denn gehn?
Wenn man aus mir unerfindlichen Gründen das TDBGrid unbedingt braucht, könnte ich es auch einfach auf invisible stellen, aber trotzdem keine saubere Sache.

So wie ich das verstanden habe, kann man ja immer nur auf die Felder zugreifen an dessen Datensatz man grade "ist". Also muss ich mit First, Next etc erst zu dem gewünschten Datensatz navigieren bevor ich die Felder lesen oder schreiben kann...aber schon bei First oder Next kriege ich Ausnahmefehler. Gibt es keine Doku dazu die für jede function und procedure von TSQLite3Dataset eine genaue Beschreibung hat?

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Du brauchst nicht unbedingt ein DateGrid es geht auch ohne, es ist nur einfacher.

Ich weiß leider im Moment nicht mehr genau wie das geht, aber es geht aufjedenfall.

Du Datenbank Komponenten du du verwendest sollte z.b. eine SQL Eigenschaft haben, dort kannst du dann eine SQL-Anweisung rein schreiben. Ein Query glaube ich war das sollte dann eine liste haben, mit den Einträgen.

Ich habe mal die Datenbank in eine VST(Virtual Tree View) geladen.

Ich glaube wenn du hiermal nach Query suchen würdest, könntest du einiges finden.
MFG
Michael Springwald

creed steiger
Beiträge: 958
Registriert: Mo 11. Sep 2006, 22:56

Beitrag von creed steiger »

Im FPC Verzeichnis sollte sich unter
/packages/sqlite/tests
eine kleine Demo befinden

du kannst dir auch das mal ansehen:
http://source.online.free.fr/" onclick="window.open(this.href);return false;

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:

Beitrag von Christian »

Du brauchst definitiv kein DBGrid, und Datasource spiegelt keine Datenbank wieder sondern ist eine Abstrakte Schicht um Zugriff auf eine Tabelle zu gewähren. Es gibt tausende Delphi Datenbank Tuturials im Netz, bei deinem Wissensstand würde ich dir dringend empfehlen mal ein-zwei durchzuarbeiten.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten