Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Unique <> Transaktion (https://www.delphipraxis.net/150754-unique-transaktion.html)

Nico80 26. Apr 2010 08:46

Datenbank: Firebird • Version: 2.1 • Zugriff über: FIBPlus

Unique <> Transaktion
 
Hallo,

ich habe in meiner Tabelle eine Unqiue-Spalte (über Index/Constraint).
Gibt es die Möglichkeit, das die Prüfung auf "Unique" erst nach dem Abschließen der Transaktion erfolgt.

Danke im Voraus.

mkinzler 26. Apr 2010 08:54

Re: Unique <> Transaktion
 
Nein.
Warum benötigst du dies?

Nico80 26. Apr 2010 09:32

Re: Unique <> Transaktion
 
Beispiel

Tabelle

ID NAME (Unique)

1 KLAUS
2 PETER

Nun möchte ich die Namen tauschen - in meiner Applikation auf speichern drücken, und das war's.
In Oracle gibt es wohl so Constraints, die innerhalb einer aktiven Transaktion nicht greifen.

mkinzler 26. Apr 2010 09:46

Re: Unique <> Transaktion
 
Du könntest den Constraint kurzfristig deaktivieren oder
SQL-Code:
update <Tabelle> set name='temp' where id = :id1;
update <Tabelle> set name = :name1 where id = :id2;
update <tabelle> set name = :name2 where id = id1;

hoika 26. Apr 2010 10:32

Re: Unique <> Transaktion
 
Hallo,

Zitat:

Nun möchte ich die Namen tauschen - in meiner Applikation auf speichern drücken, und das war's.
StartTransaction

update set name='Klaus' where ...
ExecSQL;
update set name='Heinz' where ...
ExecSQL;

Commit (Transaction)


Heiko

generic 26. Apr 2010 10:48

Re: Unique <> Transaktion
 
Deine Namestabelle sieht aus wie eine N Tabelle.
Warum tauscht du nicht die Keys in den 1 Datensätzen aus?

Nico80 26. Apr 2010 10:52

Re: Unique <> Transaktion
 
Id ist PK.

@hoika:

Beim ersten ExecSQL erfolgt eine Exception.

hoika 26. Apr 2010 11:32

Re: Unique <> Transaktion
 
Hallo,

hm, dann halt wie mkinzler #4.


Heiko


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