Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Query SQL Transaktionen (https://www.delphipraxis.net/150188-query-sql-transaktionen.html)

Starworld1000 9. Apr 2010 17:39

Datenbank: Oracle • Zugriff über: ADO

Query SQL Transaktionen
 
Hallo alle zusammen

Ich hatte in der Vergangenheit ein Programm gebastelt, das über eine Datenbank Werte anzeigt.
Es blieben jedoch immer offene Transaktionen die ich nicht mit COMMIT abgeschlossen wurden.

Da ich mich gerade erst in dieses Thema Transaktionen COMMIT und Rollback befasst habe, habe ich schnell mal ein Testprogramm geschrieben.

Jetzt weis ich nur nicht, ob das oben genannte Problem damit gelöst wäre? :oops:

Delphi-Quellcode:
...
try
 if not ADOConnect.Connected then ADO.Open;
        ADOConnect.BeginTrans;
        AdoQuery.Active := False;
        AdoQuery.SQL.Text:='SELECT POS FROM TABLE WHERE POS Like ('''+'Position38%'+''')';
        AdoQuery.Active := True;
        AdoQuery.First;
        ADOConnect.CommitTrans;
      except
        ADOConnect.RollbackTrans;
end;
...

Ist der Code so richtig ?
Könnt ihr mir weiterhelfen ? :zwinker:


Liebe Grüße Starworld1000

DP-Maintenance 9. Apr 2010 17:41

DP-Maintenance
 
Dieses Thema wurde von "mkinzler" von "VCL / WinForms / Controls" nach "Datenbanken" verschoben.
Ist eine Datenbankfrage

mkinzler 9. Apr 2010 17:42

Re: Query SQL Transaktionen
 
Um welches DBMS handelt es sich den? Ergänze am Besten im 1. Beitrag.
Für Selektionen benötigt man nicht unbedingt Transaktionen

Starworld1000 9. Apr 2010 17:53

Re: Query SQL Transaktionen
 
Danke für die schnelle Antwort

Bei der Datenbank handelt es sich um eine Oracle
und die Table auf die ich zugreife ist auf der Datenbank
verknüpft auf einen Unix Server.

Zum Grund nannte man mir, wäre die immer größer werdenden
Rollbacksegmenten :gruebel:

Liebe Grüße starworld1000 :mrgreen:

mkinzler 9. Apr 2010 17:58

Re: Query SQL Transaktionen
 
Da ein Selekt nichts an der Datenbank ändert, dürfte er auch nicht den Transkationslog vergrößern

Starworld1000 9. Apr 2010 18:47

Re: Query SQL Transaktionen
 
:?:

Starworld1000 9. Apr 2010 22:00

Re: Query SQL Transaktionen
 
Danke für die Antwort

Aber Grundsätzlich würde der Code funktionieren ?
Ich frage mich jetzt nur was es sonst für einen
Grund haben könnte, das ich den COMMIT reinsetzen
muss ? :wall:

Beste Grüße
Starworld1000 :stupid:

mkinzler 9. Apr 2010 22:14

Re: Query SQL Transaktionen
 
Besteht vielleicht eine Automatik in den Komponenten?

Starworld1000 9. Apr 2010 22:16

Re: Query SQL Transaktionen
 
Ja so ist es, da alles regelmäßig Aktualisiert werden muss

:mrgreen:

mkinzler 9. Apr 2010 22:19

Re: Query SQL Transaktionen
 
Ich meinte eine automatische Transaktionssteuerung

Starworld1000 9. Apr 2010 22:24

Re: Query SQL Transaktionen
 
Ja ist vorhanden, weil in einer Email die ich bekommen habe, das Problem
angesprochen wurde, das der Rollback-Tablespace schnell voll läuft.
Was wäre deine vermutung ? :?:

Liebe Grüße :P

mkinzler 9. Apr 2010 22:35

Re: Query SQL Transaktionen
 
Möglich schon, wobei es bei reinen Abfragen eigentlich nichts zum zurücknehmen gibt.

Starworld1000 9. Apr 2010 22:43

Re: Query SQL Transaktionen
 
Ich habe ein größeres Programm das mehrere Abfragen besitzt.
Die Aktualisierung findet jede Sekunde statt.
Dieses Progrann hat vor einigen Tagen zum Absturz der Datenbank
geführt, und durch diese Änderung, sollte dem vorgebeugt werden.

Da ich bislang noch nicht mit COMMIT und ROLLBACK gearbeitet habe,
ist dieser Code mein erster Entwurf :oops:

Könnte man den so in alle anderen Programme übernehmen ?
:mrgreen:


Liebe Grüße Starworld1000 :angel:

mkinzler 9. Apr 2010 22:47

Re: Query SQL Transaktionen
 
Das Programm führt aber auch Änderungen an den Daten durch?

Der Code ansich sollte stimmen

Starworld1000 9. Apr 2010 23:02

Re: Query SQL Transaktionen
 
Nein es zeigt nur die Daten an.

Bei einer der Abfragen im Programm sollte ich
ein Commit einbauen

SQL-Code:
Select "Auslagerbahn","POS" FROM "Firma"."Table"
where ("Auslagerbahn" like '3-31884-%')
Group by "Auslagerbahn","POS"
Order by "Firma"."Table"."Auslagerbahn" Desc
:mrgreen:

Liebe Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 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