AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Transaktion, Query , RadioGroup in Verbindung
Thema durchsuchen
Ansicht
Themen-Optionen

Transaktion, Query , RadioGroup in Verbindung

Ein Thema von haentschman · begonnen am 24. Jan 2008 · letzter Beitrag vom 24. Jan 2008
Antwort Antwort
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#1

Transaktion, Query , RadioGroup in Verbindung

  Alt 24. Jan 2008, 18:11
Datenbank: firebird • Version: 2.0 • Zugriff über: Zeos
Hallo alle...

ich bin mal wieder in einer Glaubenskrise...

im Prinzip hätte ich gern eine Meinung wie Ihr das lösen würdet. Wenn jemand eine direkte Lösung hätte wäre ich überglücklich.

Vorgaben:

- Form mit Eingaben / Änderungen aus 3 Tabellen.
- 1 Tabelle EditFelder
- 2 Tabellen werden in DbGrid´s visualisiert
- alle Informationen werden mit Querys eingelesen.

- da alle Eingaben / Änderungen zusammenhängen sind alle in eine Transaktion verpackt.
( Transaktion Start beim OnShow... Commit oder Rollback beim Schließen.

das Problem:

- die ZQuerys sind nicht ReadOnly. d.h. wenn ich mit ZQuery.Append einen Datensatz anhänge setzt die Query ein SQL Statment ab, welches in der Transaktion aufläuft.
- gleiches bei Änderungen in den Feldern der Query und Abschluß mit Post.

--> jetzt habe ich manchmal, daß die Informationen, welche in der Query geändert wurden, trotz Post und Commit nicht in der Tabelle ankommen...aber manchmal doch.
z.B. Veränderung der RadioGroup schreibt den Index in Datenfeld STATUS der Query --> Status wird im Grid richtig angezeigt --> in der Tabelle steht nach Commit immer noch der alte Wert.
--> Append und Delete funktionieren anstandslos.

- dieses Verhalten kann ich nicht reproduzieren, d.h. diese Kombination ist mir zu unsicher.

PS:
- DBRadioGroup in Verbindung mit Query geht auch nicht
- auch mit ZUpdateSQL und definierten Statements für Insert / Update / Delete gleicher Effekt
- bei der anderen Query funktioniert auch das Update...der Unterschied ist, daß bei dieser Query die Anzahl der Datensätze vorgegeben ist und bei der anderen (wo es nicht funktioniert) Datensätze hinzugefügt / gelöscht werden können.
- die Anweisungen zum Ändern der Datensätze beider Querys sind identisch.

ich bräuchte eine Query, welche kein SQL Statement absetzt so daß ich die Änderungen zu Fuß eintragen könnte

- ich habe den Quelltext bis auf ein Minimum auskommentiert, weil ich dachte, irgend ein Ereignisaufruf (z.B AfterSroll)
was durcheinander bringt...Ohne Erfolg

bleibt nur noch...

für alle Hilfe bin ich dankbar...

Ich hoffe mich verständlich ausgedrückt zu haben.
Das ganze ist zu komplex für Quelltext posten.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Transaktion, Query , RadioGroup in Verbindung

  Alt 24. Jan 2008, 18:22
Zitat von haentschman:
ich bräuchte eine Query, welche kein SQL Statement absetzt so daß ich die Änderungen zu Fuß eintragen könnte
Das lässt sich simulieren.
Dazu im Event BeforePost folgendes tun:
1.) Werte der Primärschlüsselfelder merken
2.) Alle Felder des Datasets auslesen und die Änderung über SQL INSERT oder UPDATE selbst vornehmen
3.) Dataset.Cancel; // Änderungen im DS verwerfen
4.) Dataset.Requery; // oder Close; Open;
5.) mit Locate() auf den Datensatz springen, den man sich bei 1.) gemerkt hat
6.) Abort; // stille Exception, damit der usprüngliche Postvorgang abgebrochen wird
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz