Announcement

Collapse
No announcement yet.

TQuery nur mit Joker?

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

  • TQuery nur mit Joker?

    Folgender Zusammenhang:
    Zur Laufzeit des Programmes werden Abfragen generiert.<BR>
    Stammdaten werden in einer TTable dargestellt,<BR>
    Detaildaten über eine TQuery wobei<BR>
    TQuery.DataSource auf TTable zeigt. Mit einer Abfrage<BR>
    <B>SELECT * FROM detail d WHERE d.stammId = :Id</B><BR>
    werden alle Spalten aus DETAIL in einem DbGrid dargestellt.<BR>
    Wenn ich allerdings die Abfrage verändere, um nur spezielle Spalten im Grid anzuzeigen, z.B.<BR>
    <B>SELECT d.nummer, d.wert FROM detail d WHERE d.stammId = :Id</B><BR>
    <BR>
    erhalte ich eine Fehlermeldung, daß die 'weggelassen' Spalten nicht gefunden wurden.<BR>
    Wie kann man das verhindern bzw. verändern um die Spaltenanzahl des Grid zu reduzieren?

  • #2
    Hallo,

    vermutlich hast du im Field-Editor persistente Felder angelegt, die nach der (reduzierten) Abfrage nun nicht mehr existieren.

    Gruß Ul

    Comment


    • #3
      Bingo! Genau das war's. Danke für die schnelle Hilfe.<BR>

      <BR>
      Gruß Gunnar<BR>
      <BR>
      PS: Kann man persistente Felder während des Programmablaufes wieder<BR>
      'verschwinden lassen' und wenn 'ja', wie

      Comment


      • #4
        Hallo,

        ja, kann man schon. Halte ich aber für unnötig aufwendig. In dem Fall brauchst du sie doch gar nicht erst anzulegen, oder spricht etwas dagegen?

        Wenn es aber sein muss, kannst du entweder in einer Schleife mit Hilfe des Index alle Felder entfernen (Rückwärts zählen, sonst gibt es Fehler!) oder aber nach dem Namen eines Feldes suchen:
        <pre>
        Table1Feld1.Free;
        </pre>
        oder
        <pre>
        for i := Table1.FieldCount-1 downto 0 do
        begin
        showmessage(Table1.fields[i].name);
        Table1.fields[i].free;
        end;
        </pre>
        oder
        <pre>
        Table1.fields[0].free
        </pre>

        Gruß Ul

        Comment

        Working...
        X