AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi frage zum clientdataset

frage zum clientdataset

Ein Thema von hyype · begonnen am 5. Nov 2008 · letzter Beitrag vom 13. Nov 2008
Antwort Antwort
Seite 2 von 2     12
hyype

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

Re: frage zum clientdataset

  Alt 7. Nov 2008, 12:38
das sieht dem was ich mitm ClientDataSet gemacht habe, schon sehr ähnlich
wo hast du den letzten Quellcode her, also wo in deinem Programm steht der drin? ^^
ich habe nirgends object drinne stehen ^^
kenn mich noch nicht wirklich gut aus, wie ich zugeben muss
hast du mal versucht, diese Spalten, die du ja auch mit dem Felder-Editor erstellt hast, per Quellcode zur Laufzeit zu erstellen?

edit:
ok, die .dfm im Editor angeguckt und schon seh ich auch solche Strukturen - wieder was gelernt
aber wie realisiert man dieses nun mit Quellcode?

nochmal edit:
in dem andern Forum meinte jmd (der da Super-Moderator ist), dass man ein persistentes Feld nicht mittels Quelltext anlegen kann
damit hat sich das Thema dann wohl erledigt, vielen Dank an alle, die sich beteiligt haben
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#12

Re: frage zum clientdataset

  Alt 7. Nov 2008, 14:51
Hallo,

und warum funktioniert das dann?
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
Var
    ADODataSet1Spalte4 : TStringField;
begin
  ADODataSet1Spalte4 := TStringField.Create(ADODataSet1);
  ADODataSet1Spalte4.FieldName := 'Spalte4';
  ADODataSet1Spalte4.Size := 10;
  ADODataSet1Spalte4.DataSet := ADODataSet1;
  ADODataSet1.Open;
  ADODataSet1.Edit;
  ADODataSet1Spalte1.Value := '1111';
  ADODataSet1Spalte2.Value := '2222';
  ADODataSet1Spalte3.Value := '3333';
  ADODataSet1Spalte4.Value := '4444';
  ADODataSet1.Post;
  ADODataSet1.Close;
  ADODataSet1Spalte4.Free;
end;
Die ersten drei Spalten sind aus dem Beispiel von oben, die vierte wird hier zur Laufzeit dazugedaddelt.
  Mit Zitat antworten Zitat
hyype

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

Re: frage zum clientdataset

  Alt 10. Nov 2008, 08:36
Delphi-Quellcode:
procedure TForm2.def_feld();
var
  blub:TStringfield;
begin
  blub:=TStringfield.create(datamodule3.ClientDataSet1);
  with blub do
  begin
    Size:=11;
    FieldName:='KENNUNG';
    visible:=true;
    readonly:=false;
    displaylabel:='KENNUNG';
    autogeneratevalue:=arNone;
    displaywidth:=11;
    fieldkind:=fkData;
    fixedchar:=false;
    index:=0;
    lookupcache:=false;
    name:='ClientDataSet1KENNUNG';
    providerflags:=[pfinupdate,pfinwhere];
    required:=false;
    tag:=0;
    transliterate:=true;
    alignment:=taleftjustify;
  end;
  datamodule3.InsertComponent(blub);
end;
so hatte ich es letzte Woche auch versucht, hat nicht geklappt
habe jetzt mal noch
DataSet:=ClientDataSet1; hinzugefügt und siehe da, es geht!! ES GEHT!!!
(auch ohne insertcomponent ^^)
Vielen Dank nahpets!!!
  Mit Zitat antworten Zitat
hyype

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

Re: frage zum clientdataset

  Alt 12. Nov 2008, 09:21
Hi Leute!
Ich benutz den Thread hier nochmal für was anderes, was aber thematisch zum Threadnamen passt.
Und zwar versteh ich grad Sinn und Zweck vom CDS.Edit nicht...
Ich hab folgendes Konstrukt:
ADOConnection->ADOQuery->DSP->CDS->DS->DBGrid
wobei die ADO-Komponenten erstmal keine Rolle spielen.
Problem ist:
Ich möchte gern Änderungen im DBGrid vornehmen und per post ins CDS-File speichern. Dafür habe ich mir mehrere Buttons gemacht:
einen für insert bzw append (versteh den Unterschied nicht ganz da der mit insert eingefügte Datensatz beim speichern eh am Ende landet)
einen für edit (was laut Hilfe "das Bearbeiten des AKTIVEN DATENSATZES in der Datenmenge ermöglicht")
und einen für post

Und jetzt kommt das, was ich nicht verstehe:
Wenn ich die Daten im DBGrid änder und post klicke, speichert er alle Änderungen in mein CDS-File ohne dass ich jemals edit aufgerufen habe.
Und wenn ich die readonly-Eigenschaft des CDS auf true setze, kann ich auch im DBGrid nichts mehr ändern, da kann ich edit klicken wie ich will.
Ich habe mir das eigentlich so vorgestellt, dass ich zwar sämtliche Einträge im DBGrid ändern kann, bei post aber nur der aktive Datensatz gespeichert wird und auch nur, wenn vorher ein edit kam. Idealer wäre natürlich, dass Änderungen generell nur in der Zeile des aktiven Datensatzes möglich sind und auch nur nach einem edit, also wenn jmd weiß, wie man das umsetzen kann, zögere er nicht, es mir mitzuteilen!
Ich werde natürlich selbst an dem Problem weiterarbeiten, evtl mal die Verbindung zwischen dem DBGrid und der DS "lösen" und erst vorm post wieder herstellen (mal gucken, ob das geht und was das bringt ^^)
  Mit Zitat antworten Zitat
ConstantGardener

Registriert seit: 24. Jan 2006
Ort: Halberstadt
376 Beiträge
 
Delphi 10.4 Sydney
 
#15

Re: frage zum clientdataset

  Alt 12. Nov 2008, 13:34
Hallo hyype,

ich hab den Thread jetzt nicht ganz verfolgt aber hast Du in der DS AUTOEDIT auf true? Das sollte zumindest deine Verwunderung über das mögliche Post vor dem Edit erklären.

mfg cg
Andreas Schachtner
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#16

Re: frage zum clientdataset

  Alt 12. Nov 2008, 14:14
Hallo,

schau mal in die Sourcen von DBGrids.pas von Delphi, da wird Edit automatisch aufgerufen, ich habe aber jetzt nicht analysiert, wann genau. Aber eventuell liegt es ja daran.
  Mit Zitat antworten Zitat
hyype

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

Re: frage zum clientdataset

  Alt 13. Nov 2008, 09:51
jo, autoedit der datasource war auf true
da die ganzen steuerlemente miteinander verknüpft sind, hat er dann änderungen im dbgrid automatisch übernommen und mit post gespeichert, ohne dass ich edit aufrufen musste
wenn ich dagegen im quellcode etwas verändern möchte, muss ich edit schon vorher aufrufen, damit es geht
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 03:05 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