AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi PostgresQL: SELECT wird in einer Transaction unterdrückt
Thema durchsuchen
Ansicht
Themen-Optionen

PostgresQL: SELECT wird in einer Transaction unterdrückt

Ein Thema von alzaimar · begonnen am 29. Sep 2007 · letzter Beitrag vom 30. Sep 2007
Antwort Antwort
Seite 1 von 2  1 2      
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#1

PostgresQL: SELECT wird in einer Transaction unterdrückt

  Alt 29. Sep 2007, 10:50
Datenbank: PostgreSQL • Version: 8.2. • Zugriff über: egal
Hi

Ich spiel grad mit Postgres herum:

SQL-Code:
begin transaction;
insert into test (name) values ('Foo');
select * from test;
rollback transaction;
Ich erwarte irgend eine Ergebnismenge. Leider kommt stattdessen
Zitat von pgAdmin III Query:
Abfrageergebnis mit 3 Zeilen wurde unterdrückt.

Abfrage war erfolgreich nach 20 ms. Keine Zeilen geliefert.
Man muss doch einstellen können, das man das Ergebnis sehen will, auch wenn es nicht commited wird, oder?

Kann mir jemand verraten, wie man das einstellt?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: PostgresQL: SELECT wird in einer Transaction unterdrückt

  Alt 29. Sep 2007, 11:16
Hallo alzaimar,

was passiert eigentlich, wenn du COMMIT statt ROLLBACK verwendest?

Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: PostgresQL: SELECT wird in einer Transaction unterdrückt

  Alt 29. Sep 2007, 11:53
Wo führst du die Anweisungen aus (Delphi-Komponente) bzw. mit welchen Methoden (Bei Delphi-Kompos: Open bzw. ExecSQL)?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: PostgresQL: SELECT wird in einer Transaction unterdrückt

  Alt 29. Sep 2007, 12:44
Hallo Bernhard,

ich weiß jetzt nicht wie ich drauf komme, aber ich glaube alzaimar verwendet pgAdmin3 und keine Komponenten - ich kann mich aber auch täuschen.

Freundliche Grüße
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: PostgresQL: SELECT wird in einer Transaction unterdrückt

  Alt 29. Sep 2007, 13:08
Hallo marabu, Hallo Bernhard,

Bei einem 'Commit' passiert das Gleiche (natürlich wird die Zeile eingefügt), aber die Anzeige wird unterdrückt...
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: PostgresQL: SELECT wird in einer Transaction unterdrückt

  Alt 29. Sep 2007, 14:32
Hallo alzaimar,

INSERT fügt einen (wahrscheinlich den allerersten) Datensatz in die Tabelle TEST ein, SELECT baut innerhalb der Transaction einen Cursor, dessen einziger Datensatz noch nicht committed wurde. Postgres arbeitet mit READ COMMITTED. Der mit SELECT aufgesetzte Cursor darf den gefundenen Datensatz nicht zeigen, deshalb "result with 1 rows discarded". Ein COMMIT nach dem INSERT und die Meldung sollte verschwinden.

Freundliche Grüße
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: PostgresQL: SELECT wird in einer Transaction unterdrückt

  Alt 29. Sep 2007, 16:08
Hallo marabu,

Die Tabelle ist bereits befüllt.

Ich verwende die Technik der Transaktionskapselung mit einem Rollback, um SQL-Skripte zu testen, ohne die Daten dabei zu verändern. Das funktioniert unter MSSQL einwandfrei, nur mit Postgres scheint es Probleme zu geben.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: PostgresQL: SELECT wird in einer Transaction unterdrückt

  Alt 29. Sep 2007, 16:18
Zitat von alzaimar:
Ich verwende die Technik der Transaktionskapselung mit einem Rollback, um SQL-Skripte zu testen, ohne die Daten dabei zu verändern. Das funktioniert unter MSSQL einwandfrei, nur mit Postgres scheint es Probleme zu geben.
Ich vermute eher das verwendete Tool hat damit Probleme bei mehreren Anweisungen in einem Rutsch zu erkennen das die nach einem Insert-Statement folgende Select-Anweisung einen Result-Curser liefert.
Probier mal die Anweisungen einzeln Auszuführen. Die Transaktion ist ja an deine Connection gebunden und solange das Tool nicht nach jeder Anweisung die Verbindung trennt bekommst du das gleiche Ergebnis.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#9

Re: PostgresQL: SELECT wird in einer Transaction unterdrückt

  Alt 29. Sep 2007, 16:20
Ein Rollback beendet die Transaktion und verwirft implizit alle Ergebnisse der Transaktion. Wenn du das Rollback auslässt, bleibt das Ergebnis das selbe (die Transaktion wird einem Rollback unterzogen, da kein Commit auftrat), aber du wirst deine Ergebnismenge zu gesicht bekommen.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: PostgresQL: SELECT wird in einer Transaction unterdrückt

  Alt 29. Sep 2007, 19:53
Zitat von Bernhard Geyer:
Ich vermute eher das verwendete Tool hat damit Probleme bei mehreren Anweisungen in einem Rutsch zu erkennen
Deine Vermutung ist richtig: 2x SELECT hintereinander bringt das gleiche Ergebnis 'Anzeige wurde unterdrückt'.

Zitat von Dax:
....die Transaktion wird einem Rollback unterzogen, da kein Commit auftrat), ...
Nein, leider nicht Die Transaktion ist noch offen. Ich muss also zum Schluss ein explizites Rollback getrennt ausführem.

Fazit: Ich benötige ein Postgres-Query-Tool, das mehrere Ergebnismengen anzeigen kann. Na, zur not eben selbst schreiben.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 16:13 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