Announcement

Collapse
No announcement yet.

Schreibgeschützte Abfragen

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

  • Schreibgeschützte Abfragen

    Hallo,

    ich habe ein Query (select * from .......)
    Die Daten werden einem DBGrid übergeben (TDataSource).

    Leider kann ich die Daten in dem Grid nicht ändern (schreibgeschützt).
    Wie kann ich die Verarbeitung/Änderung von Daten ermöglichen??

    Vielen, vielen Dank

    Sladjana

  • #2
    Hallo Sladjana,

    mit Query erzeugst du eine Teilmenge deiner Daten. Sozusagen ein Abbild. Da das auch über mehrere Tabellen erfolgen kann, ist das Editieren in einem dbGrid nicht möglich. Dazu kannst du UPDATE nehmen.
    Beispiel siehe http://www.delphi-download.de/u.php.
    In der Datei Localsql.hlp auf deinem Rechner findest du die Hilfe dazu.

    mfg Klaus-Pete

    Comment


    • #3
      Hallo Klaus,

      hab' es anders gemacht, mit Hilfe von einer "Hilfstabelle", in die
      ich die abgefragten Daten reinkopiert habe, aus der "Original-Tabelle"
      gelöscht und nach der Verarbeitung aus der "Hilfs-T." in die "Original-T." wieder angefügt habe.

      Trotzdem, vielen Dank

      Gruß Sladjan

      Comment


      • #4
        Hallo Sladjana,
        lade dir mal ein Beispielprogramm "SQL-Monitor" runter. Dort habe ich das anders gelöst. Ich schalte zur Bearbeitung zwischen Query und Table um. http://www.delphi-download.de.
        Dort findest du auch über "Update" ein Beispiel.
        http://www.delphi-download.de/u.php

        Und hier mal ein Beispiel für Update. Für ein Demoprogramm soll per SQL rausgesucht werden, wer in diesem Monat Geburtstag hat. Dazu muß in der Tabelle immer beim Aufruf des Programms ein Geburtstag auf den aktuellen Monat gebracht werden. Das wird hier mit Update für den Kunden mit der ID = 2 erledigt.
        <pre>
        {Damit der Button "Wer hat heute Geburtstag" auch funktioniert, ändern wir
        beim aktivieren einen Geburtstag immer auf das heutige Datum. Nur daß sich
        keiner wundert.}
        tmp := 'UPDATE kunden.db SET gebdat = "'+DateToStr(date)+'" WHERE ID = 2';
        query1.SQL.Clear;
        query1.sql.add(tmp);
        query1.execSQL;
        query4.open;
        </pre>

        mfg Klaus-Pete

        Comment


        • #5
          Hallo Klaus,

          vielen Dank für Deine Hilfe.

          habe das Beispielprogramm runtergeladen, muß mir aber noch genauer anschauen (sobald ich dazu komme).

          Dake

          Gru&#223

          Comment

          Working...
          X