AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi jvMemoryData und CopyStructure
Thema durchsuchen
Ansicht
Themen-Optionen

jvMemoryData und CopyStructure

Offene Frage von "smudo"
Ein Thema von smudo · begonnen am 16. Jul 2007 · letzter Beitrag vom 7. Sep 2007
Antwort Antwort
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#1

jvMemoryData und CopyStructure

  Alt 16. Jul 2007, 15:32
Datenbank: egal • Version: ? • Zugriff über: jvMemoryDataSet
Ich habe vor längerem schon mal zu diesem Thema einen Thread eröffnet. Das Problem hat sich jetzt wieder aufgetan und zwar so:

Ich möchte mit CopyStructure die Struktur eines vorhandenen jvMemoryData in ein anderes kopieren und anschließend noch einige Spalten über Fielddefs.Add hinzufügen.
Die zusätzlichen Spalten sind anschließend auch in den Fielddefs enthalten, leider aber nicht in den Fields. Dadurch kann man auch nicht über ValueByName oder FieldByName auf solch ein Feld zugreifen.

Hat jemand eine Idee, woran das liegen könnte und wie man es behebt?

Danke
René
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: jvMemoryData und CopyStructure

  Alt 16. Jul 2007, 16:41
Ich mache das immer so:
Delphi-Quellcode:
Procedure AddStringField(aDS : TDataSet; aFieldName : String; aMaxSize : Integer);
Var
  f : TField;

Begin
  With TStringumericField.Create (aDS ) Do Begin
    FieldName := sName;
    Calculated := False;
    FieldKind := fkData;
    DataSet := aDS;
    Size := aMaxSize;
  End;
  aDS.fieldDefs.update;
End;
Entsprechend für TNumericField, TInterField, TDateTimeField etc. Mit FieldDefs habe ich es nicht hinbekommen...
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#3

Re: jvMemoryData und CopyStructure

  Alt 17. Jul 2007, 09:08
Danke für den Hinweis. Ehrlich gesagt, finde ich das sehr aufwändig.
Momentan habe ich eine eigene Routine für CopyStructure erstellt, welche mir die Fielddefs kopiert.
Delphi-Quellcode:
Procedure MyCopyStructure(aFromDS, aToDS: TDataSet);
var i: Integer;
begin
  aToDS.Close;
  aToDS.FieldDefs.Clear;
  for i := 0 to aFromDS.FieldDefs.Count - 1 do
    aToDS.FieldDefs.Add(aFromDS.FieldDefs[i].Name,
      aFromDS.FieldDefs[i].DataType,
        aFromDS.FieldDefs[i].Size,
          aFromDS.FieldDefs[i].Required);
  //...
end;
Anschließend besteht ohne Weiteres die Möglichkeit, über Fielddefs.Add weitere Felder hinzuzufügen.
Warum geht das mit der Standard-Routine nicht? Was macht CopyStructure anders? Es kann doch eigentlich nur ein Flag sein, welches anschließend verhindert, dass die Struktur weiter angepasst werden kann.

Auch wenn das Problem erstmal so umgangen werden kann, würde es mich trotzdem sehr interessieren, eine direkte Lösung zu finden.
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#4

Re: jvMemoryData und CopyStructure

  Alt 18. Jul 2007, 15:29
push
  Mit Zitat antworten Zitat
tr909

Registriert seit: 5. Nov 2004
193 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: jvMemoryData und CopyStructure

  Alt 7. Sep 2007, 14:11
hmm. Evtl könnte dir folgendes helfen.

aToDS.ApplyMode := amAppand;

Gruß
tr909
  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 05:34 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