![]() |
Datenbank: Firebird • Version: 2.5 • Zugriff über: Interbase
Daten werden nicht geschrieben "Transaktion ist Aktiv&q
Hallo,
ich brauch doch nochmal Hilfe. Ich habe folgendes Problem. Wenn ich in der TDBAdvGrid etwas editiere und dann einen Commitauslösen will, bekomme ich immer die Melden "Transaktion Aktiv". Die Daten werden aber nicht geschrieben. Ich habe den Code zum Auslösen der Transaktion mal zu Testzwecken in einen Button ausgelagert, hier mal ein Ausschnitt aus meiner UMain:
Delphi-Quellcode:
faelle ist ein DataSet, grid_faelle ist Das TDBAdvGrid, dbtrans ist die Transaktionskomponente, db_zentral ist die Datenbankverknüpfung. Wie gesagt der Grid nimmt die Änderung zunächst an, wenn ich dann aber den Button drücke kommt der Fehler und die Daten werden nicht geschrieben.
procedure Tf_main.FormShow(Sender: TObject);
begin if not FileExists('Datenbanken\ZENTRALDATEI.FDB') then begin ShowMessage('Die Zentraldatenbank wurde nicht gefunden'); HALT end; dm.db_zentral.Open; end; procedure Tf_main.AdvSmoothButton1Click(Sender: TObject); begin if dm.dbtrans.InTransaction then dm.dbtrans.Commit; // falls noch eine TRansaktion offen ist, die Änderungen schreiben und abschließen dm.faelle.Open; // neu laden des Datasets, damit die Änderungen sichtbar werden dm.dbtrans.StartTransaction; // eine neue Transaktion beginnen end; procedure Tf_main.p_faelleShow(Sender: TObject); begin grid_faelle.FixedCols := 0; dm.faelle.Open; end; Kann mir jemand einen Tip geben? Danke Codex |
Re: Daten werden nicht geschrieben "Transaktion ist Akt
-Wie sieht die Abfrage aus?
-Hast du ein manuelles Update-Statement gesetzt? -Hast du verschiedene Transaktionen für Abfrage und DML-Statements gesetzt? -Wie ist/sind die Transaktion konfiguriert? |
Re: Daten werden nicht geschrieben "Transaktion ist Akt
Äh... *rot werd* ok erwischt. Das sagt mir alles nicht wirklich was... Wo kann ich mir das anlesen? Dann schreibe ich wieder, wenn ich Deine Fragen verstanden habe *g*
Grüße Codex |
Re: Daten werden nicht geschrieben "Transaktion ist Akt
Zitat:
Zitat:
Zitat:
Zitat:
|
Re: Daten werden nicht geschrieben "Transaktion ist Akt
SQL Abfrage ist ganz einfach zum Starten alle Felder aus meiner FAELLE-Tabelle:
SQL-Code:
select * from FAELLE
Modify SQL sieht so aus (hat er selbst erzeugt, war so im Tut beschrieben):
SQL-Code:
Standard-Transaktion ist: TACommit
update FAELLE
set FALLNAME = :FALLNAME, FORT = :FORT, GESCHWISTER = :GESCHWISTER, HMA = :HMA, HMA_STD = :HMA_STD, INDEXANREDE = :INDEXANREDE, INDEXGEB = :INDEXGEB, INDEXNACHNAME = :INDEXNACHNAME, INDEXORT = :INDEXORT, INDEXPLZ = :INDEXPLZ, INDEXSTRASSE = :INDEXSTRASSE, INDEXVORNAME = :INDEXVORNAME, JA = :JA, JA_MA = :JA_MA, KOSTENART = :KOSTENART, MA_BEGINN = :MA_BEGINN, MA_ENDE = :MA_ENDE, MA_STUNDEN = :MA_STUNDEN, MA3 = :MA3, MA3_STD = :MA3_STD, MA4 = :MA4, MA4_STD = :MA4_STD, MA5 = :MA5, MA5_STD = :MA5_STD, MA6 = :MA6, MA6_STD = :MA6_STD, NMA = :NMA, NMA_STD = :NMA_STD, STATUS = :STATUS, ZIELE = :ZIELE, ZUS_ANREDE = :ZUS_ANREDE, ZUS_ORT = :ZUS_ORT, ZUS_PLZ = :ZUS_PLZ, ZUS_STRASSE = :ZUS_STRASSE where FALLID = :OLD_FALLID Ich inzwischen etwas weiter rumprobiert: Ich hatte die Transaction-Komponente mal testweise direkt zur Designzeit auf Active gestellt. Er hat dann zumindest einige Werte übernommen. Wenn ich den Button klicken, kommt trotzdem noch die Fehlermeldung. Aber offenbar ist in dem TDBAdvGrid schon eine eigene Transaktions-Behandlung integriert und ich muss das gar nicht extra im Code machen...(?). Selsamerweise übernimmt er die Werte von ID-Feldern nicht (die intern als Primär- oder Fremdschlüssel definiert sind). Ich vermute mal entweder weil ich für Indexfelder eine eigene Behandlung brauche oder weil die eingebenen Daten als Chars interpretiert werden, der Datentyp des Feldes aber Integer... Grüße Codex |
Re: Daten werden nicht geschrieben "Transaktion ist Akt
Primärschlüsselfelder sollte man natürlich nicht ändern. So geht es auf jedenfall nicht, da die Werte anhand dessen wert geändert werden ("Ändere den Datensatz mit der ID ...")
|
Re: Daten werden nicht geschrieben "Transaktion ist Akt
Ja klar, der Primärschlüssel natürlich nicht, aber die Fremdschlüssel müsste man doch eintragen können...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:07 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