Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi SMDBGrid und ADS-Datenbank (https://www.delphipraxis.net/125264-smdbgrid-und-ads-datenbank.html)

Mike_on_Tour 3. Dez 2008 09:41


SMDBGrid und ADS-Datenbank
 
Hallo,

ich habe eine Form mit einem SMDBGrid und einer ADS-Tabelle (ADS-Version 8.1). Damit die Sortierung der Spalten funktioniert (OnClickTitle), wird das Grid über ein ADSQuery gefüllt. Nach Auswahl der Gridzeile sollen die Daten des Datensatzes in DB-Controls (DBEdit, DBCheckBox usw.) angezeigt werden. Die DB-Controls verwenden ebenfalls das ADSQuery als Datenquelle. Leider ist damit eine Änderung der Daten nicht möglich, da alle DB-Controls sozusagen "read-only" sind. Wie läßt sich das Problem lösen ?

Mike

mkinzler 3. Dez 2008 09:54

Re: SMDBGrid und ADS-Datenbank
 
Ein dataSet verwenden oder ein UpdateObject deklarieren

Mike_on_Tour 3. Dez 2008 10:00

Re: SMDBGrid und ADS-Datenbank
 
Sorry, aber ich kann Dir noch nicht folgen :wall:

mkinzler 3. Dez 2008 10:08

Re: SMDBGrid und ADS-Datenbank
 
Bei einem DataSet TADSDataSet o.ä müsste man weitere Statements für Insert/Update/Delete ... hinterlegen können.
Man kann einen Query mit der Eigenschaft .UpdateObject mit einer T<xx>UpdateSQL Kompo verbinden, in welcher man dann die DML-Statements festlegen kann

Tyrolean 3. Dez 2008 10:30

Re: SMDBGrid und ADS-Datenbank
 
Zitat:

Zitat von mkinzler
Bei einem DataSet TADSDataSet o.ä müsste man weitere Statements für Insert/Update/Delete ... hinterlegen können.
Man kann einen Query mit der Eigenschaft .UpdateObject mit einer T<xx>UpdateSQL Kompo verbinden, in welcher man dann die DML-Statements festlegen kann

Kann man leider nicht. Aber eigentlich sollte ein Select mit einem Order by trotzdem editierbar sein. RequestLive ist ja vermutlich auf True gesetzt. Das SQL zu sehen wäre nicht schlecht.

Mike_on_Tour 3. Dez 2008 10:44

Re: SMDBGrid und ADS-Datenbank
 
OK, Du warst schneller als ich. Ich wollte gerade schreiben, das ich kein TAdsDataset habe. Und die Eigenschaft 'UpdateObject' gibt es nur im Code vom TAdsQuery.

Das SQL ist relativ einfach:
SQL-Code:
SELECT *
  FROM Lizenzen
 WHERE (Aktiv = true)
Nach einem Klick auf den Spaltentitel im SMDBGrid wird an das SQL noch ein 'ORDER BY ...' angefügt, je nach Sortierrichtung.

Ich habe aber gerade gesehen, daß 'RequestLive' auf false steht. Vielleicht ist das ja die Lösung.

Tyrolean 3. Dez 2008 10:51

Re: SMDBGrid und ADS-Datenbank
 
Zitat:

Zitat von Mike_on_Tour
Ich habe aber gerade gesehen, daß 'RequestLive' auf false steht. Vielleicht ist das ja die Lösung.

Ziemlich sicher. So ein SQL-Statement muß editierbar sein, erst wenn du joinst usw. kann es passieren daß es nicht mehr geht.

Mike_on_Tour 3. Dez 2008 10:59

Re: SMDBGrid und ADS-Datenbank
 
Es war das 'RequestLive'. Besten Dank für die Hilfe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz