DataSet Update Status

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6766
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:

Re: DataSet Update Status

Beitrag von af0815 »

theo hat geschrieben: Es gibt noch viel zu tun. Upgedatet wird noch gar nichts. Auch Primary Keys, AutoInc etc. werden noch nicht gehandelt.
Du kannst aber INSERT UPDATE etc. Queries in den Editor eintippen. Das müsste klappen.
In der Demo wir aber der Grid erst nach nochmaligem SELECT upgedatet.
........
EDIT: Jetzt wird auch experimentell upgedatet. Nur String und Integer Typen und unter der Annahme, dass Feld1 der Primärschlüssel ist. Wie definiere ich Primarschlüssel im Dataset?
AutoInc muß die DB verarbeiten, da ist eher das Problem wie der 'richtige' Autoinc in die Datenmenge zurück kommt. Die Updates gehören dann Zeile für Zeile in die DB hinein und der dabei rückgegeben AutoIncwert muß dann wieder in die lokale Datenmenge eingearbeitet werden.

Ich schau mir das Beispiel an und auch das mit dem PK im Dataset. Man darf nicht vergessen, das er ja auch zusammengesetzt sein kann.

PS: Hast du Schlafstörung :-) (von theo » Dienstag 17. August 2010, 02:06 Re: DataSet Update Status)
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
theo
Beiträge: 10865
Registriert: Mo 11. Sep 2006, 19:01

Re: DataSet Update Status

Beitrag von theo »

af0815 hat geschrieben: AutoInc muß die DB verarbeiten, da ist eher das Problem wie der 'richtige' Autoinc in die Datenmenge zurück kommt.
Schon klar, aber wir müssen doch irgendwie wissen, dass dieser Wert u.U. nicht dem lokalen entspricht, bzw. nicht eingefügt werden sollte.
Wenn ich den Wert aber zur XML-Lesezeit auf ftAutoInc setze, dann kann ich in dem Feld nicht mehr schreiben.
Aber wie sollen wir das sonst auszeichnen?
af0815 hat geschrieben: PS: Hast du Schlafstörung :-) (von theo » Dienstag 17. August 2010, 02:06 Re: DataSet Update Status)
Nö, alles gut. Sorgen brauchst du dir erst machen, wenn ich um 7:20 schon ins Lazarusforum schreibe. ;-)

EDIT: Im Zip gibt es zwei Bugfixes, im PHP Skript und im XML reader. Neu downloaden!
Benötigen wir SVN? Kenne mich damit allerdings nicht gut aus.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6766
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:

Re: DataSet Update Status

Beitrag von af0815 »

theo hat geschrieben:Benötigen wir SVN? Kenne mich damit allerdings nicht gut aus.

Hehe, da kommst du zu einem Anhänger von SVN - Das ist kein Problem. Bei Lazforge wäre es sicherlich möglich, das administrative kann ich machen. Ich nehme an Checkout öffentlich, Submit nur unmittelbare Entwickler, restliche Welt über Patches.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
theo
Beiträge: 10865
Registriert: Mo 11. Sep 2006, 19:01

Re: DataSet Update Status

Beitrag von theo »

af0815 hat geschrieben:Hehe, da kommst du zu einem Anhänger von SVN - Das ist kein Problem. Bei Lazforge wäre es sicherlich möglich, das administrative kann ich machen. Ich nehme an Checkout öffentlich, Submit nur unmittelbare Entwickler, restliche Welt über Patches.
Mal sehen. Konntest du das Projekt kompilieren und funktioniert das für dich?
Hältst du den eingeschlagenen Weg für richtig? Oder gibt es alternative Ansätze? sqldb?
Für mich sind die Datenbankkomponenten von Laz/Delphi ziemliches Neuland, ich kämpfe mich so durch.

Es gibt übrigens in dem File noch ein Update bezüglich IndexDefs bzw. Primärschlüssel.
Vielleicht müssten wir mal besprechen, was wir wie genau wollen, bevor wir ein SVN-Repository aufmachen.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6766
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:

Re: DataSet Update Status

Beitrag von af0815 »

theo hat geschrieben:Mal sehen. Konntest du das Projekt kompilieren und funktioniert das für dich?
Hältst du den eingeschlagenen Weg für richtig? Oder gibt es alternative Ansätze? sqldb?
Kompilieren ja (Windows). Nur der PHP Teil fehlt klarerweise.

Der Weg ist mal richtig, besser wissen tut es man hinterher. Irgendwo muß man ja anfangen.
Was mir beim durchdenken beschäftigt ist - bei einfachen/kleinen Datenmengen (= tabelle) gehts noch, wenn du aber aktualisierbare Sichten (Views) und große Datenmengen betrachtest, dann wird es meiner derzeitigen Meinung nach zu Problemen kommen. Ein kleiner Teil davon ist die Problematik mit dem AutoInc.

Derzeitger Vorgang zusammengefasst:
1) das lokale dataset holt sich etwas von der hauptdb
2) die lokale db wird geändert
3) die Änderungen sollen zurück in die hauptdb

Probleme derzeit:
bei 3) wie gehe ich mit AutoInc um, ich benötige ja die lokale db um die Informationen upgedatet.
bei 1) Was bekomme ich da ja überhaupt - eine Teilmenge der Tabelle, die Tabelle, eine aktualisierbare Datenmenge ?

Die Frage für mich ist, kann ich es mehr auf die Serverseite legen und einfach mehr Proxy spielen, ohne die Datenmenge lokal liegen zu haben ? Nur dann muß es auf der PHP Seite dynamischer zugehen. ür spezifische Probleme wird die jetztige Lösung handhabbar sein, für allgemeine Sachen eher nicht.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
theo
Beiträge: 10865
Registriert: Mo 11. Sep 2006, 19:01

Re: DataSet Update Status

Beitrag von theo »

af0815 hat geschrieben: Kompilieren ja (Windows). Nur der PHP Teil fehlt klarerweise.
Wie meinst du das? Script liegt bei. Hast du kein PHP?
af0815 hat geschrieben: Der Weg ist mal richtig, besser wissen tut es man hinterher. Irgendwo muß man ja anfangen.
Denke ich auch, zumal wenn man wie ich von der Materie allgemein nicht viel Ahnung hat.
af0815 hat geschrieben: Was mir beim durchdenken beschäftigt ist - bei einfachen/kleinen Datenmengen (= tabelle) gehts noch, wenn du aber aktualisierbare Sichten (Views) und große Datenmengen betrachtest, dann wird es meiner derzeitigen Meinung nach zu Problemen kommen. Ein kleiner Teil davon ist die Problematik mit dem AutoInc.
Ja, da könnte man vllt. mit "limit 4,12" was basteln. Blobs könnte man vllt. "on demand" nachladen.
Für das AutoInc Problem ist mir auch noch nicht viel eingefallen. Man könnte einfach die die Autoinc Felder bei insert immer zurücksenden.
af0815 hat geschrieben: Die Frage für mich ist, kann ich es mehr auf die Serverseite legen und einfach mehr Proxy spielen, ohne die Datenmenge lokal liegen zu haben ? Nur dann muß es auf der PHP Seite dynamischer zugehen. ür spezifische Probleme wird die jetztige Lösung handhabbar sein, für allgemeine Sachen eher nicht.
Was versprichst du dir von der Geschichte?
Eins ist klar: Je allgemeiner desto aufwändiger.
Für meine ursprüngliche Idee würde es bald reichen. Bin aber schon dabei, das noch zu verbessern.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6766
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:

Re: DataSet Update Status

Beitrag von af0815 »

theo hat geschrieben:
af0815 hat geschrieben: Was mir beim durchdenken beschäftigt ist - bei einfachen/kleinen Datenmengen (= tabelle) gehts noch, wenn du aber aktualisierbare Sichten (Views) und große Datenmengen betrachtest, dann wird es meiner derzeitigen Meinung nach zu Problemen kommen. Ein kleiner Teil davon ist die Problematik mit dem AutoInc.
Ja, da könnte man vllt. mit "limit 4,12" was basteln. Blobs könnte man vllt. "on demand" nachladen.
Für das AutoInc Problem ist mir auch noch nicht viel eingefallen. Man könnte einfach die die Autoinc Felder bei insert immer zurücksenden.
Normalerweise sendest du update für update und kannst bei jedem den letzten autoinc wert auslesen, diesen muß man dann (gesammelt) zurücksenden in die lokale db.

Edit: das php File habe ich überlesen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten