Thema: Delphi frage zum clientdataset

Einzelnen Beitrag anzeigen

hyype

Registriert seit: 5. Nov 2008
97 Beiträge
 
Delphi XE2 Professional
 
#4

Re: frage zum clientdataset

  Alt 6. Nov 2008, 09:45
yippieh, ein Poster
Also, wenn ich die CDS-Komponente auf meinem Datenmodulformular doppelt anklicke und ein neues Feld hinzufüge mit den Parametern
name = KENNUNG
typ = String
size = 20
fügt er im Quellcode bei type TDataModule3 usw ein TStringField namens ClientDataSet1KENNUNG hinzu.

type
TDataModule3 = class(TDataModule)
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
ClientDataSet1: TClientDataSet;
DataSetProvider1: TDataSetProvider;
ClientDataSet1KENNUNG: TStringField; <- per Doppelklick aufs CDS erstellt

Die Eigenschaften fielddefs und indexdefs des CDS bleiben dagegen unverändert leer.
D.h. unter Umständen macht mein Code gar nicht das, was ich dachte, was er machen würde.
Evtl benutzt man fielddefs um manuell eine Tabelle zu erstellen, das ist ja nciht das, was ich will, ich hole mir ja die Tabelle aus ner SQL-DB, will von den Spalten aber z.z. nur eine anzeigen (könnte man auch in der SQL-Anweisung formulieren, aber das ist hier nicht das Ziel)
Ich versuche jetzt gerade, irgendwie zur Laufzeit dem DataModule3 diese TStringField-Komponente hinzuzufügen.
Was mich dabei blos wundert, ist, dass diese Komponente scheinbar nirgends in Verbindung mit dem CDS zu stehen scheint, also weder ist bei dem StringField ein Verweis auf das CDS eingetragen, noch ist beim CDS ne Verlinkung auf das StringField. Lediglich der Name deutet darauf hin, dass die was miteinander zu tun haben.
Darüber hinaus kann ich aus der mainunit mit Datamodule3. das CDS ansteuern, nicht aber dieses TStringfield, das versteh ich leider auch nicht.

zum open bzw close weglassen:
Lass ich close weg, füllt sich mein DBGrid nicht mit Daten sondern nur mit den Spaltenbezeichnungen, lass ich open weg bleibt mein DBGrid leer.

edit:
Ich habe dem DataModule3 jetzt ein TStringField-Komponente mit der Bezeichnung ClientDataSet1KENNUNG hinzugefügt und alle Eigenschaften des händisch erstellten StringFields (welches ich anschließend natürlich gelöscht habe) übernommen. Ein Klon sozusagen. Dieser ist jedoch nicht lebensfähig, soll heißen, das Programm checkt nich, dass der was mit dem CDS zu tun hat (hätte mich auch gewundert, wenn's so einfach wäre). Ich gehe daher davon aus, dass es zwischen dem StringField und dem CDS schon eine Verbindung gibt, diese mir aber über den Objectinspector bzw die Eigenschaften des CDS bzw des StringFields nicht einsehbar ist.

Die Frage bleibt wie folgt:
Wie kriege ich es mit Quellcode realisiert, dass das CDS mir statt aller enthaltenen Spalten nur eine anzeigt???
Ich bin mit meinem Latein jedenfalls am Ende, werde noch ein wenig rumgoogeln und auf DEINE Hilfe hoffen.
  Mit Zitat antworten Zitat