Entwickler-Ecke
Datenbanken - DBGrid über Query, zwei Tabellen bearbeiten
sTk - Do 06.05.10 11:25
Titel: DBGrid über Query, zwei Tabellen bearbeiten
Hallo!
Ich habe ein DBGrid welches über eine DataSource auf ein Query zugreift, welches wiederum Datensätze aus zwei Paradox-Tabellen liest. So weit so gut, das funktioniert(wenn auch mit viel Hilfe, bin blutiger Anfänger bei Datenbanken ;) )
Jetzt ist es allerdings nicht mehr möglich, die Daten einfach im DBGrid zu ändern.
Kennt jemand von euch eine Möglichkeit, wie ich es hin bekomme, dass eben das funktioniert.
Vielen Dank schonmal.
Gruß, Steffen
sTk - Mi 15.12.10 14:28
Hallo,
das Problem besteht leider immer noch.
Also falls jemand einen Lösungsansatz hat, bitte melden.
Dankeschön.
Gruß, Steffen
Tranx - Mi 15.12.10 15:21
Ich habe leider kein Paradox, um das zu testen. Möglicherweise gibt es eine spezielle SQL-Abfrage, mit der so etwas möglich ist (wird dann in der Eigenschaft SQL eingegeben).
Jedoch taucht meines Erachtens ein großes Problem auf. In welcher der beiden Datentabellen sollen denn die Daten gespeichert werden? Bei vorhandenen Daten mag das ja noch gehen, doch was ist mit neuen Daten (Insert, Append)? Ich befürchte, was Du da vorhast, wird daran scheitern und deshalb setzt Delphi dann die Canmodify-Eigenschaft der Query auf FALSE. Dann ist eine Bearbeitung nicht möglich.
Zuerst aber: Welchen Wert hat RequestLive der Query? TRUE oder FALSE. Mit F11 bei angeklickter Query siehst Du die Eigenschaften. Damit Werte geändert werden müssen, muss RequestLive auf TRUE stehen.
Critter - Mi 15.12.10 19:06
Hi,
ich meine mich erinnern zu können, das einige DBs das hingekommen, bei einfachen und eindeutigen Joins. Ob Paradox das allerdings kann ist mir unbekannt und da ich von dem System nicht viel erwarte würde ich eher vermuten, dass nicht.
Wie sieht denn dein Query aus?
critter
Tranx - Do 16.12.10 04:42
Vergaß noch zu erwähnen, dass - ich habe es bei DBase beobachtet - Querys ebenfalls keine Änderungen zuließen, wenn die Tabelle (und hier war es immer nur eine Tabelle) sortiert war und das Sortierfeld nicht von DBase selber indiziert war. Möglicherweise reagiert Paradox ähnlich. Bei Access ist das mit dem Sortieren überhaupt kein Problem mehr, da benötigt man nicht unbedingt ein Index auf dem Feld. Da könntest Du ja z.B. die deine beiden Tabellen in Access in einer Abfrage zusammenfassen und anschließend in Delphi als TQuery oder TTable ansprechen.
Ist nur ein Vorschlag.
zuma - Do 16.12.10 09:17
Oft liegt es daran, das die Datenmenge, die gelesen wird, einen Join enthält.
Eine Möglichkeit, gejointe Datenmengen trotzdem editierbar zu machen, ist, diese in ein Clientdataset zu schreiben und dieses dann zur Anzeige und Bearbeitung zu benutzen.
Es gibt dann also 3 Aufgabenbereiche:
1) Daten mit Query lesen und in Clientdataset legen (abschreiben)
2) Daten anzeigen und bearbeiten lassen mit DBGrid, verbunden mit dem Clientdataset
3) Daten aus Clientdataset mit Query in Datenbank schreiben
Somit trennst du dann auch das Lesen / Bearbeiten und Schreiben der Daten in eigene Prozeduren.
bummi - Do 16.12.10 09:35
oder vielleicht doch mal auf eine zeitgemäße DBM umsteigen.
Critter - Do 16.12.10 11:15
bummi hat folgendes geschrieben : |
oder vielleicht doch mal auf eine zeitgemäße DBM umsteigen. |
:zustimm:
Das könnte dann auch weitere noch kommende Probleme lösen.
critter
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!