Announcement

Collapse
No announcement yet.

Persistente Felder ohne Fields-Editor

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Persistente Felder ohne Fields-Editor

    Hallo Leute,
    wie kann man persistente Felder zur Laufzeit anlegen, also ohne den Fields-Editor der IDE?
    Ich möchte, dass diese Felder noch vor dem Öffnen meiner Query existieren und über das Schliessen hinaus nicht verloren gehen.
    Vielen Dank im voraus.
    Gruß
    Reinhard

  • #2
    Ich denke wie mit jeder anderen Komponente auch, also
    <pre>
    field := TStringField.Create(<von schau in die Hilfe>)
    with field do
    begin
    DataSource :=
    FieldName :=
    etc.
    end;
    </pre&gt

    Comment


    • #3
      Geht leider nicht:
      Die so erzeugten "persistenten" Felder werden in die selektierten Felder der Query hineingemischt.
      Bei persistenten Feldern durch den Fields-Editor werden diese Felder jedoch nicht die Felder der Query ergänzt sondern ersetzt.

      So etwa sieht mein Code aus:

      aField := TFloatField.Create(MyDataModule);
      aField.Name := 'QueryAktionAKTION_ID';
      aField.FieldName := 'AKTION_ID';
      aField.Origin := 'EXPORTDB.AKTION.AKTION_ID';
      aField.DataSet := QueryAktion;
      QueryAktion.Fields.Add(aField);
      QueryAktion.sql.Text :=
      'SELECT '+
      ' AKTION_ID '+
      'FROM '+
      ' AKTION ';
      QueryAktion.Open

      Comment


      • #4
        Geht leider nicht:

        Die so erzeugten "persistenten" Felder werden in die selektierten Felder der Query hineingemischt.
        Bei persistenten Feldern durch den Fields-Editor werden diese Felder jedoch nicht die Felder der Query ergänzt sondern ersetzt.

        So etwa sieht mein Code aus:
        <PRE>
        aField := TFloatField.Create(MyDataModule);
        aField.Name := 'QueryAktionAKTION_ID';
        aField.FieldName := 'AKTION_ID';
        aField.Origin := 'EXPORTDB.AKTION.AKTION_ID';
        aField.DataSet := QueryAktion;
        QueryAktion.Fields.Add(aField);
        QueryAktion.sql.Text :=
        'SELECT '+
        ' AKTION_ID '+
        'FROM '+
        ' AKTION ';
        QueryAktion.Open;
        </PRE&gt

        Comment


        • #5
          Ich habe das vor Urzeiten schon mal gemacht, ich glaube abgespeckt wie folgt müßte gehen, inkl. neuer Reihenfolge
          <pre>
          QueryAktion.sql.Text :=
          'SELECT '+
          ' AKTION_ID '+
          'FROM '+
          ' AKTION ';
          aField := TFloatField.Create(MyDataModule);
          aField.DataSet := QueryAktion;
          aField.FieldName := 'AKTION_ID';
          QueryAktion.Fields.Add(aField);
          QueryAktion.Open;
          </pre&gt

          Comment


          • #6
            Hi *;<br>
            Wie entferne ich korrekt 'afield' zur Laufzeit aus dem Dataset ?

            dank

            Comment

            Working...
            X