Hallo zusammen,
jetzt brauche ich Hilfe.
Hab noch nie ein TBufDataset direkt nutzen müssen
Szenario:
Ich habe ein DBGrid mit darunter liegendem DataSet.
Dieses Dataset/DBGrid zeigt eine Pivot-Tabelle an.
Da ich die Werte in einem TChart als Linien-Series darstellen soll, habe ich gedacht, ein InMemory BufDataset zu erzeugen, welches nur die Datenspalten hat.
Heisst: Erste Spalte hat den Titel der Datenreihe, die Werte der Datenreihe kommen in den folgenden Spalten, wobei die Spaltennamen der Daten später im Chart als X-Achsen-Beschriftungen dienen sollen
Die Fields/FieldDefs hinzuzufügen (Setze FieldName und Datentyp) ist ja einfach, aber wie bekomme ich die Daten jetzt da reingeklopft?
Mache ich ein BufDS.Append heisst es "DS ist nicht aktiv"
Mache ich vorher ein BufDS.Open reklamiert er "Feld Blabla nicht gefunden"
Wat nu?
Oder ist TBufDataset das falsche Mittel?
[ERLEDIGT] InMemory-Datensatz anlegen - BufDataset
- Zvoni
- Beiträge: 651
- Registriert: Fr 5. Jul 2024, 08:26
- OS, Lazarus, FPC: Windoof 10 Pro (Laz/FPC fixes)
- CPU-Target: 64Bit
- Wohnort: BW
[ERLEDIGT] InMemory-Datensatz anlegen - BufDataset
Zuletzt geändert von Zvoni am Mi 15. Apr 2026, 13:58, insgesamt 1-mal geändert.
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
-
Sieben
- Beiträge: 300
- Registriert: Mo 24. Aug 2020, 14:16
- OS, Lazarus, FPC: Ubuntu Xenial 32, Lazarus 2.2.0, FPC 3.2.2
- CPU-Target: i386
Re: InMemory-Datensatz anlegen - BufDataset
Hast du nach den FieldDefs und vor dem Open ein CreateDataset? Danach - nach CreateDataset und Open - sollte sich das Ding wie ein ganz normaler Dataset verwenden lassen, also auch was Operationen wie Append und Delete etc betrifft. Und ja, TBufDataset ist schon der richtige Kandidat.
- Zvoni
- Beiträge: 651
- Registriert: Fr 5. Jul 2024, 08:26
- OS, Lazarus, FPC: Windoof 10 Pro (Laz/FPC fixes)
- CPU-Target: 64Bit
- Wohnort: BW
Re: InMemory-Datensatz anlegen - BufDataset
OCH MENNO.Sieben hat geschrieben: Mi 15. Apr 2026, 12:44 Hast du nach den FieldDefs und vor dem Open ein CreateDataset? Danach - nach CreateDataset und Open - sollte sich das Ding wie ein ganz normaler Dataset verwenden lassen, also auch was Operationen wie Append und Delete etc betrifft. Und ja, TBufDataset ist schon der richtige Kandidat.
*groan*
Danke! Erledigt
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
Re: [ERLEDIGT] InMemory-Datensatz anlegen - BufDataset
Verstehe ich richtig, dass du die Pivot-Tabelle schon in einem Dataset hast? Warum brauchst du dann noch den BufDataset? Im Prinzip zwar richtig, weil TDbChartSource extrem ineffiziert ist und wahrscheinlich eine Serververbindung lahmlegt. Und ob ein Bufdataset viel hilft, weiß ich nicht. Ich würde stattdessen den Dataset an den Anfang setzen, Record für record durchlaufen und die benötigten Werte in die Series (oder eine TListChartSource) kopieren.Zvoni hat geschrieben: Mi 15. Apr 2026, 11:52 Ich habe ein DBGrid mit darunter liegendem DataSet.
Dieses Dataset/DBGrid zeigt eine Pivot-Tabelle an.
[...]
Oder ist TBufDataset das falsche Mittel?
- Zvoni
- Beiträge: 651
- Registriert: Fr 5. Jul 2024, 08:26
- OS, Lazarus, FPC: Windoof 10 Pro (Laz/FPC fixes)
- CPU-Target: 64Bit
- Wohnort: BW
Re: [ERLEDIGT] InMemory-Datensatz anlegen - BufDataset
Danke für deine Antwort.wp_xyz hat geschrieben: Mi 15. Apr 2026, 16:25Verstehe ich richtig, dass du die Pivot-Tabelle schon in einem Dataset hast? Warum brauchst du dann noch den BufDataset? Im Prinzip zwar richtig, weil TDbChartSource extrem ineffiziert ist und wahrscheinlich eine Serververbindung lahmlegt. Und ob ein Bufdataset viel hilft, weiß ich nicht. Ich würde stattdessen den Dataset an den Anfang setzen, Record für record durchlaufen und die benötigten Werte in die Series (oder eine TListChartSource) kopieren.Zvoni hat geschrieben: Mi 15. Apr 2026, 11:52 Ich habe ein DBGrid mit darunter liegendem DataSet.
Dieses Dataset/DBGrid zeigt eine Pivot-Tabelle an.
[...]
Oder ist TBufDataset das falsche Mittel?
Die Pivot-Tabelle hat zwei zusätzliche Spalten, und ich kämpfe eben damit, dass es mir die ganze Zeit "zu viele Spalten" in den Chart geschrieben hat, und mit dem BufDataset habe ich das jetzt zwar aufwendig umgangen, aber es funzt
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.