AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Stringlist an Dataset anbinden

Ein Thema von cytrinox · begonnen am 4. Sep 2006 · letzter Beitrag vom 4. Sep 2006
Antwort Antwort
cytrinox

Registriert seit: 4. Sep 2006
88 Beiträge
 
#1

Stringlist an Dataset anbinden

  Alt 4. Sep 2006, 13:08
Hi,

ich suche nach einer Möglichkeit eine Stringlist an ein Dataset zu hängen (jaja, eklig - muss aber sein :p )

In der Stringlist stehen jede Menge Strings die in einem Dataset über eine Spalte abrufbar sein sollen,
also in etwa so wenn ich eine tabelle hätte mit einem Feld vom Typ String.

Dass ich mit Delphi erst seit ein paar Tagen "richtig" arbeite ist mir dabei auch keine große Hilfe

Da ich aber recht lange in C++ programmiert habe bin ich mal so an das Problem gegangen:

Abgeleitete Klasse von TDataset erstellen
Abgeleitete Klasse von TField erstellen

und dann die abstract Methoden jeweils implementieren sowie noch ein paar Methoden anpassen (first(), last(), next() usw.)

Das ganze Dataset wird dann an einen Crystal Reports Viewer angebunden der die Daten ausspucken soll. Es ist nur so dass ich jetzt seit ein paar Tagen an dem Problem hänge und alles was in in den Viewer reinbekomme ist der letzte Datensatz, also das letzte Item in der Stringlist.


Hier mal die Funktion getRecord(), ich vermute mal dass da ein Fehler drin ist, aber auf alle Fälle erklärt der Code recht gut was ich eigentlich versuche zu machen

Delphi-Quellcode:
function StringListDataSet.GetRecord;
begin
     result := grOK;
     case GetMode of
     gmNext:
            if self.stringIndex < self.strlist.count - 1 then
            begin
               Inc(self.stringIndex);
               Buffer := PChar(Self.strlist[self.stringIndex]);
               self.field.SetValue(self.strlist[Self.stringIndex]);
               result := grOK;
            end
            else
                result := grEOF;

     gmPrior:
            if self.stringIndex > 0 then
            begin
               Dec(self.stringIndex);
               Buffer := PChar(Self.strlist[self.stringIndex]);
               self.field.SetValue(self.strlist[Self.stringIndex]);
               result := grOK;
            end
            else
                result := grBOF;
     gmCurrent:
               begin
               Buffer := PChar(Self.strlist[self.stringIndex]);
               self.field.SetValue(self.strlist[Self.stringIndex])
               end
     end;
     ShowMessage('GetRecord called... ' + IntToStr(self.stringIndex));
end;
als Hinweis noch: setValue speichert einfach nur einen string in meiner abgeleiteten TField Klasse welchen man über FieldByName('TEMP').value z.B. wieder auslesen kann.


Gibts da vielleicht einen einfacheren Weg sowas umzusetzen? Wenn nicht schreib ich gern mal das was ich bisher hab in ein kleines Demoprogramm (bringt vermutlich aber nur den wenigsten etwas da Crystal Reports benötigt wird).

Schonmal Danke für die Hilfe
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Stringlist an Dataset anbinden

  Alt 4. Sep 2006, 13:29
Zitat von cytrinox:
Gibts da vielleicht einen einfacheren Weg sowas umzusetzen?
Ja, es gibt sog. Memory-Datasets. Diese Komponenten sind von TDataset abgeleitet und speichern ihre Daten
(z.Teil komprimiert) im RAM.
http://www.torry.net/pages.php?id=572
Andreas
  Mit Zitat antworten Zitat
cytrinox

Registriert seit: 4. Sep 2006
88 Beiträge
 
#3

Re: Stringlist an Dataset anbinden

  Alt 4. Sep 2006, 14:49
prima, kostet zwar bissl was, funktioniert aber im gegensatz zu meinem krempel
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: Stringlist an Dataset anbinden

  Alt 4. Sep 2006, 14:56
Zitat von cytrinox:
prima, kostet zwar bissl was, funktioniert aber im gegensatz zu meinem krempel
Nicht unbedingt. TkbmMem Table ist frei für nichtkommerzielle Programme.
In der JVCL findet sich ebenfalls ein Memory-Dataset; ebenso in der (veralteten) RX-Lib 2.75.
Diese können IMHO auch in kommerziellen Programmen verwendet werden.
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz