Delphi-PRAXiS
Seite 2 von 5     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi IB-Transaktionen (https://www.delphipraxis.net/41161-ib-transaktionen.html)

Albi 27. Feb 2005 13:22

Re: IB-Transaktionen
 
Zitat:

Zitat von HaJo
Seit kurzem versuche ich mit diesen Komponenten zu arbeiten. Bisher habe ich ausschließlich über die BDE gearbeitet.

Aber was Transaktionen sind und wie man sie benutzt ist mir äusserst suspekt.

Kann mir jemand helfen das zu verstehen?

Tranactionen kannst Du mit einem Umschlagplatz vergleichen, die Daten kommen da rein, werden gelagert und wenn alles IO ist, dann werden sie weitergeschickt = Commit oder eben wieder retour geleitet = Rollback.

Wie Du nun den Umgang mit den Transaction gestalltest, hast Du hier ja nun gelesen. Es muß also jeder die für sich beste Variante finden.

Quake 27. Feb 2005 13:39

Re: IB-Transaktionen
 
Kurz gesagt eine Transaktion ist immer dann sinnvoll wenn daten an mehreren Datensäten gleichzeitig gemacht werden müssen, egal ob einzel- oder Mehrplatzsystem. Wenn nähmlich durch einen Fehler nur an einem Datensatzt die Änderungen gespeichert werden und am anderen nicht ist die DB inkonsistent. Also das was hier schon öfter gesagt wurde Alles oder Nichts.

@Albi: Sorry, mir ist aber immer noch nicht der Sinn klar warum getrennte Transaktionen fürs lesen und schreiben. :wall:
Was mir klar ist, ist das die Transaktionen so kurz wie möglich sein sollten und vieleicht mache ich in meiner Anwendung ja auch was falsch oder zu mindes unschön.
Weil ich hier ja auch noch was lernen will mal alles ganz lagsam zum mitschreiben
-Transaktion 1 wird gestartet
-Daten wedern gelesen
-Transaktion 1 wird beendet
-Daten werden bearbeitet
-Transaktion 2 wird gestartet
-Daten werden geschrieben
-Transaktion wird beendet

Habe ich das soweit richtig verstanden?

HaJo 27. Feb 2005 13:55

Re: IB-Transaktionen
 
Danke an Euch alle für die vielen Tips und Erklärungen. Im Prinzip hab ich es nun Dank Eurer Mithilfe begriffen.

Nochmals vielen lieben Dank,
Jochen

Jelly 27. Feb 2005 14:08

Re: IB-Transaktionen
 
Zitat:

Zitat von Quake
-Transaktion 1 wird gestartet
-Daten wedern gelesen
-Transaktion 1 wird beendet
-Daten werden bearbeitet
-Transaktion 2 wird gestartet
-Daten werden geschrieben
-Transaktion wird beendet

Das ist so falsch. Nach Beenden von Transaktion 1 können keine Daten bearbeitet werden, und dann erst die Transaktion 2 gestartet werden. Änderungen an Daten passieren im Falle von Interbase IMMER innerhalb einer Transaktion.

MagicAndre1981 27. Feb 2005 14:15

Re: IB-Transaktionen
 
Die Datenänderung erfolgt beim COMMIT.

André

Quake 27. Feb 2005 14:20

Re: IB-Transaktionen
 
@Jelly: Das würde aber bedeuten, das es unbedingt eine Transaktion für lesen und schreiben sein müßte. (Oder habe ich heute ein Brett vor dem Kopf? :wall: ) Ich verstehe das nicht mit den getrennten Transaktione fürs lesen und schreiben. :gruebel: Beides in einer Transaktion zu machen ist mir schon klar.

kiar 27. Feb 2005 14:24

Re: IB-Transaktionen
 
hallo quake,

mann muss keine zwei transaktionen machen. ich mache aber auch immer zwei einmal für's lesen und eine für's schreiben. ist meiner meinung nach übersichtlicher.

raik

edit // dicke finger kleine tasten

MagicAndre1981 27. Feb 2005 14:32

Re: IB-Transaktionen
 
Man kann 2 Transaktionen nehmen. 1 zum lesen, denn auch jeder Lesezugriff braucht, wegen der Multigenerationsarchitektur, eine Transaktion. Wenn du ein COMMIT machst ist die Anzeige deiner daten in den DB Aware Komponenten weg. Deshalb eine zwiete für die Updates.

André

Quake 27. Feb 2005 14:40

Re: IB-Transaktionen
 
Das man 2 Transaktionen verwenden kann ist mir nun klar aber warum?
Wenn ich mir Albis Beitrag anschaue get es aber (indirekt).
-Transaktion 1 starten
-Daten auslesen per Query
-Daten in Edit kopieren (nicht DBEdit)
-Transaktion 1 beenden
-Daten im Edit ändern
-Transaktion 2 starten
-Daten aus Edit auslesen und einer SP oder SQL-Update übergeben
-Transaktion 2 beenden

@kiar: Ich will ja hier was lernen, aber mir leuchtet immer noch nicht ein warum das Übersichtlicher ist.
Ich habe eine IBDatabase dieser weise ich eine DefaultIBTransaktion zu. Dann nehme ich eine IBQuary, IBTable oder IBSQL und weise ihnen die Database incl. Transaktion zu. Was ist jetzt aber unübersichtlich?

Oder... lasst ihr zumindest Transaktion 1 in meiner Aufzählung länger geöffnet, macht sie also nicht sofort nach dem lesen wieder zu? Dann währe es für mich verständlicher.

kiar 27. Feb 2005 14:47

Re: IB-Transaktionen
 
hallo quake,

ist bei ne kleine app auch richtig, aber gehen wir doch mal von einer app aus die aus zb 5 datamodulen besteht und ihre daten aus ca.30 tabellen raussammelt?

da dient jede genaue bezeichnung der übersichtlichkeit.

raik


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:04 Uhr.
Seite 2 von 5     12 34     Letzte »    

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