![]() |
Datenbank: SQLite • Version: 3 • Zugriff über: SQLite3Connection
DBEdit schreibgeschützt?
Hallo,
ich laden die Daten in eine DBEdit, doch in dieser lässt sich nichts ändern, wieso eigentlich? ReadOnly ist false. Oder wird das beschreibbar wenn man im DBNavigator auf "+" klickt? Kann ich mir vorstellen, aber beim DBNavigator sind alle Icons außer Pfeilen deaktiviert, keine Ahnung wieso, aber wahrscheinlich weil ich mehrere Tabellen lade. Danke! |
AW: DBEdit schreibgeschützt?
Nur mal so ins blaue geschossen: gibt es die Eigenschaft "Enabled" und ist diese eventuell auf "False" gesetzt?
|
AW: DBEdit schreibgeschützt?
Nein, in den Eigenschaften wurde nichts geändert. Ich denke das muss so sein... werde eine normale Edit nehmen.
|
AW: DBEdit schreibgeschützt?
Ich denke, dass das Dataset auf Readonly steht, weil es sich um eine Abfrage mit joins handelt. Bei einer einfachen Abfrage (select * from xyz) wird automatisch ein update-Statement (update xyz set abc = 'xxx') erstellt, bei komplexen Abfragen setzt dieser Automatismus Readonly einfach auf false und man muss sich selber um alles kümmern.
|
AW: DBEdit schreibgeschützt?
Wo kann ich bei DataSet das Readonly ausschalten? Finde diese Einstellung nicht, gibt's die überhaupt bei Lazarus? Meine SELECT abfrage ist nicht ganz einfach, da sind mehrere Tabellen.
|
AW: DBEdit schreibgeschützt?
Selber Readonly auf true setzen würde eh nix bringen. Lass dir mal
![]() |
AW: DBEdit schreibgeschützt?
Eventuell noch die RowID mit selectieren.
Sherlock |
AW: DBEdit schreibgeschützt?
CanModify ist false! Wie schalte ich es auf true?
Delphi-Quellcode:
will nicht
SQLQuery1.CanModify := True;
Zitat:
|
AW: DBEdit schreibgeschützt?
|
AW: DBEdit schreibgeschützt?
Wow... cool... muss jetzt los, schaue es Zuhause nach. Vielen Dank!
|
AW: DBEdit schreibgeschützt?
Woher soll denn das Dataset erahnen welche Tabellen wie upzudaten sind, wenn du einen komplexen select hast?
|
AW: DBEdit schreibgeschützt?
Und wie üblich ist es machen?
|
AW: DBEdit schreibgeschützt?
Zitat:
Delphi-Quellcode:
Laß die Finger von den DB.. Componenten, da weißt Du wo Du bist.
irgendwas.sql.text:='update mytable set myfield=wert where myid=id';
irgendwas.sql.exec; {differiert je nach komponente} Gruß K-H |
AW: DBEdit schreibgeschützt?
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
AW: DBEdit schreibgeschützt?
Datenmengen über mehrere Tabellen sind normalerweise schreibgeschützt, da in der Ergebnismenge (also im DataSet) jegliche Information fehlt, welcher Wert aus welcher Tabelle stammt (es steht nur das Ergebnis der Abfrage zur Verfügung). Und damit hat das DataSet keine Chance bei 'ner Wertänderung diese an die "richtige" Stelle zu schreiben.
Wenn Du an dem Ergebnis Änderungen vornehmen willst, bleibt Dir nichts anderes übrig, als für die änderbaren Werte entsprechende Edits zu nutzen und die Änderungen dann per Update (wie von p80286 beschrieben) in die Datenbank zu schreiben. Damit das problemlos funktionieren kann, musst Du aber auch für alle Werte die entsprechenden Datenbankschlüssel mit selektieren. Sind in der Abfrage Summierungen, Gruppierungen ... enthalten, wird das aber auch scheitern. Zeig' uns mal bitte das Statement, eventuell hat dann ja jemand 'ne Idee, wie Du damit, mit erträglichem, Aufwand umgehen kannst. Ohne das Statement zu kennen, ist das leider ein bisserl "Stochern im Dunklen". Die Ergebnismenge kannst Du in 'nem DBGrid mit 'nem Navigator anzeigen. Im AfterScroll-Ereignis des DataSets könntest Du dann die änderbaren Einzelwerte in Edits übertragen. Änderungen gehen aber nur per Update und werden im DBGrid nicht sichtbar, bis die Abfrage erneut ausgeführt wird. |
AW: DBEdit schreibgeschützt?
Ah... jah... jetzt begreife ich so langsam die Logik die dahinter steckt, danke Dir! Ich tüftle mal ein bisschen weiter... das hilft mir weiter. :thumb:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:35 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 by Thomas Breitkreuz