![]() |
Datenbank: firebird • Version: 2.1 • Zugriff über: Zeos
DB-Grid speichert nicht alle geänderten Datensätze
Achtung Lazarus!
Hallo zusammen, ich habe ein dbgrid welches über eine einfache query gefüllt wird. Eine einzige tabelle keine Subquery, nichts kompliziertes. Nun soll durch Bearbeiten eines einzelnen Feldes im Grid der Wert darin geändert werden können. Das funktioniert soweit und die Änderungen werden auch im Grid angezeigt. Leider wird aber jeder x-te satz in der DB nicht gespeichert. Ich kann da leider keine Regelmässigkeit erkennen. Nach dem erneuten Einlesen aus der DB sind einige Datensätze wieder (noch) mit dem alten Wert gefüllt. Auch ein explizites Post nach jeder Satzänderung bringt nix :-( Wo kann ich den Fehler suchen. PS ich schieb den Post mal noch in LAZ-Forum Gruss KHH |
AW: DB-Grid spinnt
Das könnte möglicherweise an ZEOS liegen. Hast Du nach dem Post einmal testhalber die Verbindung getrennt und neu aufgebaut?
|
AW: DB-Grid spinnt
Bitte gib deinem ersten Beitrag einen aussagekräftigen Titel, damit man weiß, um was es geht.
|
AW: DB-Grid spinnt
Zitat:
das Ändert nichts :-( Die Änderungen der betroffenen DS kommen gar nicht in der DB an :-( |
AW: DB-Grid speichert nicht alle geänderten Datensätze
Habe eine ähnliches Problem!
Wenn ich einen Datensatz über Delphi erstelle und diese dann in Delphi wieder abfrage, werden diese angezeigt. Erstelle ich aber über die isql.exe neue Datensätze( Gleicher befehl wie in Delphi) und frag sie dannach ab, seh ich diese auch(über die selbe Abfrage wie in Delphi). Doch ich sehe über isql.exe nicht die in Delphi erzeugten Datensätze und andersrum. Nach einem Neustart der isql.exe und erneuter abfrage seh ich alle Datensätze. Doch in Delphi seh ich weiterhin nur die von sich selbst erstellen Datensätze auch nach einem Neustart nicht. Ich logge mich in beiden fällen mit dem gleichen User ein. Woran kann das liegen? |
AW: DB-Grid speichert nicht alle geänderten Datensätze
Fehlt vielleicht noch ein COMMIT nach Deinen Posts?
|
AW: DB-Grid speichert nicht alle geänderten Datensätze
nee fehlt kein commit
|
AW: DB-Grid speichert nicht alle geänderten Datensätze
Kann mal jemand den Werbebot rauswerfen? Mich nervt sowas tierisch :evil:
|
AW: DB-Grid speichert nicht alle geänderten Datensätze
Reicht doch eigentlich, wenn du den Post reportest. Der Admin wird sich dann bestimmt um weiteres kümmern ;)
BTT: Bei mir fehlt auch kein COMMIT |
AW: DB-Grid speichert nicht alle geänderten Datensätze
habe jetzt festgestellt, dass es ab und an die gleichen DS sind bei denen die Änderungen nicht gespeichert werden.
Bei manuell eingefügten Sätzen sind die Sätze die sich nicht ändern lassen auch willkürlich. was kann das denn sein ?:wall: |
AW: DB-Grid speichert nicht alle geänderten Datensätze
Zitat:
|
AW: DB-Grid speichert nicht alle geänderten Datensätze
also nachdem ich explizit nach jedem ds-wechsel ein Post eingefügt habe, habe ich jetzt festgestellt, dass es immer die gleichen Datensätze sind, die sich nicht ändern lassen.
Aus 66 Sätzen sind es folgende 14:
Code:
ich kann nicht erkennen was daran fehlerhaft ist :-(ARTIKELPREISAENDERUNG_ID ARTPREISAENDKOPF_ID ARTIKEL_ID ARTIKELNUMMER BEZEICHNUNG NETTOPREIS BRUTTOPREIS NETTONEU BRUTTONEU AENDERPROZPOS 112 26 457 100008 Mischbrot 500g 1,4018 1,5000 1,4018 1,5000 0,0000 118 26 497 100014 kl.Weissbrot 1,6821 1,8000 1,6821 1,8000 0,0000 121 26 506 100019 Holzfäller 1,8691 2,0000 1,8691 2,0000 0,0000 122 26 500 200000 Weckmehl 1,4018 1,5000 1,4018 1,5000 0,0000 124 26 489 200002 Brezeln/Groß 0,9345 1,0000 0,9345 1,0000 0,0000 125 26 462 200003 Brötchen 0,2803 0,2999 0,2803 0,2999 0,0000 132 26 464 200010 Spitzwecken 0,2803 0,2999 0,2803 0,2999 0,0000 138 26 486 300001 Donuts Black 0,6542 0,6999 0,6542 0,6999 0,0000 142 26 501 300005 Quarkteig-Hasen 0,6542 0,6999 0,6542 0,6999 0,0000 144 26 492 400001 Bisquitböden 6,5420 7,0000 6,5420 7,0000 0,0000 145 26 475 400002 Hefezopf 600g 1,6821 1,8000 1,6821 1,8000 0,0000 149 26 478 400006 Streuselkuchen/Stück 1,4018 1,5000 1,4018 1,5000 0,0000 154 26 508 400012 Nusszopf 80cm 13,0840 14,0000 13,0840 14,0000 0,0000 156 26 495 500001 MM Sahnessa Joghurt 22,6822 24,2699 22,6822 24,2699 0,0000 jemand von euch? ach ja die id -felder sind integer, die Bezeichnung char und die Beträge decimal |
AW: DB-Grid speichert nicht alle geänderten Datensätze
Da werden wohl Fremdschlüssel verletzt.
Wenn z.B. das Feld "ARTIKEL_ID" in einer anderen Tabelle der Primärschlüssel ist und eine Beziehung zwischen deiner Tabelle und der Mastertabelle besteht und du das Feld "ARTIKEL_ID" mit einem Wert füllst zu dem es keinen Datensatz gibt, dann sagt Firebird "Nada - iss nich" und der Datensatz bleibt unverändert. Normalerweise sollte der Änderungs-Fehler als Exception bis zur Oberfläche durchdringen, aber es gibt leider immer Fälle, bei denen die Fehlermeldungen aus dem DBMS verloren gehen. |
AW: DB-Grid speichert nicht alle geänderten Datensätze
Zitat:
die Tabelle hat keinerlei Abhängigkeiten. Die Tabelle wird aus den Tabellen Artikel und Artikelpreise gefüllt. Die Artikelid wird nur mitgespeichert um später die Peise ändern zu können. Soweit bin ich aber noch gar nicht. Ausserdem habe ich nur versucht das Feld bruttoneu und ,versuchweise, die Bezeichnung zu ändern :-( wenn ich wüsste, ok ist ein Fehler im Grid, könnte ich damit leben und das Ganze anders lösen, aber so? ich habe versuchsweise auch andere Daten benutzt. Da kam es unter 1000 DS ebenfalls zu x Sätzen die sich nicht ändern lassen:-( |
AW: DB-Grid speichert nicht alle geänderten Datensätze
Bei Mysql muss da "RequestLive auf True" stehen, vielleicht gibts da bei deiner Db was ähnliches...
Hier was aus der Hilfe: RequestLive ist eine Anforderung an eine SELECT-Abfrage, eine aktualisierbare (live) oder schreibgeschützte Ergebnismenge von der Datenbank zu liefern. Der Wert false für RequestLive (Vorgabe) bewirkt, dass die Ergebnismenge immer schreibgeschützt ist. Es wird keine Anforderung an die Datenbank gesendet, eine aktualisierbare Ergebnismenge zurückzugeben. Der Wert true für RequestLive ist eine Anforderung an die Datenbank, eine aktualisierbare Ergebnismenge zurückzuliefern. Eine aktualisierbare Ergebnismenge kann dem Benutzer der Anwendung zur direkten Datenbearbeitung über visuelle Datensteuerelemente zur Verfügung gestellt werde |
AW: DB-Grid speichert nicht alle geänderten Datensätze
alsooo,
Fehler behoben. Lag wohl an der Einstellung des Datasource. Da war autoedit auf false gesetzt :-( Ich danke euch Gruss KHH |
AW: DB-Grid speichert nicht alle geänderten Datensätze
Ich glaube fast, du speicherst die Daten wirklich über das DBGrid.
Prpgrammiertechnisch ist das natürlich falsch. Ein DBGrid ist nur dazu gedacht, dem Benutzer am Bildschirm die Daten anzuzeigen und Änderungen zu ermöglichen. Um Daten über das Programm abzufragen, zu ändern oder einzufügen arbeitet man direkt mit dem TDataset bzw. einer Ableitung davon (TTable, TQuery, TADOQuery, TZeosQuery,...). Also ich würde das ändern, denn du verlirst bei deinem Umweg über TDataSource und TDBGrid natürlich auch Geschwindigkeit. |
AW: DB-Grid speichert nicht alle geänderten Datensätze
Zitat:
Das Programm ansonsten nutzt im HG natürlich die (Zeos)- Query ;-) Danke dir für deine Ausführung Gruss KHH |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:54 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