Wie kann ich eine Datenbank über ein TGrid updaten?

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
alfware17
Beiträge: 134
Registriert: Di 14. Dez 2010, 23:27

Re: Wie kann ich eine Datenbank über ein TGrid updaten?

Beitrag von alfware17 »

Hallo charlytango, meine Zitate-DB ist 2014 als ein Android-Projekt entstanden in Java. Ich wollte unbedingt von der Text-Form weg und fand andererseits die bei Android eingebaute SQLite-Datenbank sehr schön für meine Zwecke. Also habe ich das als relationale Datenbankl entworfen mit Kapitel (die Textdateien) und Spruch (innerhalb) als Key, wobei ich trotzdem eine ID zugelassen habe. Wir haben damals einen 4 Wochen Kurs gehabt, in deren letzter einer Woche ich das programmiert habe und im Nachhinein noch etwas privat verfeinert. DIe ganzen Operationen in der ZitateDB-Unit gab es aber damals schon und auch die vielleicht etwas merkwürdig anmutenden Zugriffe (zB den nächsten in einer bestimmten Kategorie usw.), ich brauch(t)e die jedoch um zB eine gewisse ZUFÄLLIGE Anzeige zu gewährleisten, Suche nach Stichworten, Filter und so was.

Es gibt dazu ein Konsolenprogramm, welches genau die Textdateien einliest und daraus die Zitate baut und dann die SQLIte-DB. Daher brauche ich auch die einzelnen Objekte und zB die Liste damit der Datenbankbau am Anfang (Installation im Handy) nicht Minuten braucht sondern wenige Sekunden.

Natürlich will niemand 15.000 oder mehr Datensätze laden, eines meiner Java-Programme (welches auch mit so einem Grid arbeitet), macht das aber und man kann dann zB einen Live-Filter auf ein Stichwort oder eine Kategorie setzen. Auch die Bearbeitung geht mit der Java-Anwendung (besser als mit einem SQLite-Manager übrigens :-), denn ich habe da einfach von einem anderen meiner Kurse, eine Kuchenbasar-Verkaufsdatenbank, abgeschrieben bzw an die Zitate-Datenbank angepaßt.

Dann kam ich auf die Idee, das Java/Android-Anzeige Programm (also zufällige Sprüche anzeigen) auch für den PC nachzuempfinden und dazu habe ich eben Lazarus benutzen wollen, weil ich schon seit Jahrzehnten Turbo-Pascal und Free Pascal im Konsolenbereich benutze und mir einen Teil des Onlines über einen Delphi-Kurs angeeignet habe. Nur kamen da keine Datenbanken und kein Grid vor. Die Zitate-Datenbank ist (fast) mein einziges Online-Programm (mal abgesehen von einem Taschenrechner oder ein paar einfachen Formularen wo ich zB eine Datei einlese und sortiere), die ganze Arbeitsweise mit dem Formular ist mir also generell bekannt, ich habe aber keine Praxis und mache das auch nur privat nicht beruflich, wo ich mich eigentlich mit Technik und Sprachen aus den 70er und 80er Jahren des letzen Jahrhunderts immer noch befasse.

Die Datenbank in einem neuen Programm auch mal über Lazarus zu verwalten, kam mir, nachdem ich meinen ganzen Datenbank-Zugriff (im Wesentlichen die ZitateDB Unit und die Units drum herum) von Java nach Pascal umgestellt hatte und mein Konsolenprogramm (die Textdateien -> in die SQLite-Datenbank) und eine funktionierende wenn auch bisher noch einfachere Anzeige als die im Handy/Android-Projekt. Das Update-Formular mit dem DBGrid nachdem ich hier fragte, soll also eine einzige Anwendung bleiben und ich brauche keine weiteren Formulare. Natürlich wäre es schön zu wissen, wie man sowas modern und schick entwirft - aber das Beispiel mit dem ZEOS war für mich leider nicht passend und das andere, mehr allgemeine(?) auch nicht, jedenfalls konnte ich da weder etwas sehen noch generieren noch gar laufen lassen.

Es wäre schön, wenn ich das mit dem Locate hinbekomme. Deine 3 Links werde ich dann mal versuchen.

Ich hoffe, als Erklärung für das Projekt war es genug. Ich brauche für meine Anzeige wie gesagt nur ein ziemlich ausgefeiltes "Gib mir den nächsten Spruch" und alles andere ist nur Beiwerk, welches andere Programme brauchen, um die Datenbank zu bauen, wenige Sprüche inhaltlich zu verändern oder die einfach nur da sind, weil ich mal einen kompletten Satz an SQLs für die DB haben wollte. Und natürlich sind die da in der Unit drin, weil sich mehrere Programme draus bedienen oder auch den DB-Connect haben wollen.

alfware17
Beiträge: 134
Registriert: Di 14. Dez 2010, 23:27

Re: Wie kann ich eine Datenbank über ein TGrid updaten?

Beitrag von alfware17 »

Nachtrag: Die Zeile

DataSource1.DataSet.Locate('ID', ID, []);
(an der Stelle wo mein Kommentar ist) macht genau das was ich will.

Es kam auf die [] an, die ersten beiden Parameter hatte ich mir schon gedacht.

Also wieder ein Problem gelöst, jetzt noch Buttons für Add und Delete und dann ist der Editor fertig. Beim Add vergebe ich übrigens Kategorie und Spruchnummer automatisch neu, auch so eine Funktion, die meine Unit eigentlich schon hat. Das Edit auf das reine Grid könnte das eventuell ausblenden oder schreibgeschützt machen, damit da keine Begehrlichkeiten aufkommen, Keys zu ändern :-)

Antworten