Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   FireBird 2 bekommt eine RETURNING clause :-) (https://www.delphipraxis.net/57179-firebird-2-bekommt-eine-returning-clause.html)

Robert_G 16. Nov 2005 23:29

Datenbank: Firebird • Version: 2 • Zugriff über: FB .Net DataProvider

FireBird 2 bekommt eine RETURNING clause :-)
 
Ich habe mir gerade die Release notes zu FB 2 durchgelesen.
Anscheinend ist es nun endlich möglich auch in Firebird konsistente, db-seitig erzeigte PKs zu verwenden.
Hier der passende Auszug: Wer also bisher krampfartig die Werte selbst aus den sequences (Ja in FB heißßen Generatoren jetzt so wie es richtig heißt ;) ), können sich freuen.
Nur so als kleine Info gedacht. Hat mich echt überrascht.

Hier der Auszug:
Zitat:

RETURNING Clause for Insert Statements
D. Yemanov
The RETURNING clause syntax has been implemented for the INSERT statement, enabling the re-
Data Manipulation Language (DML)
36
turn of a result set from the INSERT statement. The set contains the column values actually stored.
Most common usage would be for retrieving the value of the primary key generated inside a BEFORE-
trigger.
Available in DSQL and PSQL.
Syntax Pattern
SQL-Code:
INSERT INTO ... VALUES (...) [RETURNING <column_list> [INTO <variable_list>]]
Example(s)
1.
SQL-Code:
INSERT INTO T1 (F1, F2)
VALUES (:F1, :F2)
RETURNING F1, F2 INTO :V1, :V2;
2.
SQL-Code:
INSERT INTO T2 (F1, F2)
VALUES (1, 2)
RETURNING ID INTO :PK;

Wäre jetzt noch nett zu wissen wann die Final erwartet wird.
Vllt könnte ich Nexus aus dem BriefCase client wieder durch FB ersetzen. ;) (FB hat eindeutig den besseren Data Provider, inkl. retuning macht das ...

Hansa 17. Nov 2005 02:28

Re: FireBird 2 bekommt eine RETURNING clause :-)
 
Schön, wenn das Dich freut. :-D Aber was ist da Bedeutendes dran ? Gut, für schreibfaule wie dich :mrgreen: ist das alles erwähnenswert, aber eine schlichte SP hat vorher dasselbe gemacht.

Robert_G 17. Nov 2005 21:30

Re: FireBird 2 bekommt eine RETURNING clause :-)
 
Zitat:

Zitat von Hansa
Aber was ist da Bedeutendes dran ? Gut, für schreibfaule wie dich :mrgreen: ist das alles erwähnenswert, aber eine schlichte SP hat vorher dasselbe gemacht.

Es ermöglicht erstmals konsistentes Handling von auto-inkrementierten PKs.
Du kannst nun endlich einen BIU Trigger schreiben, der beim INSERT _immer_ einen PK aus der sequence holt, egal was reingeworfen wurde. Und Änderungen verbietet.
Bisher musste man den Wert elbst holen und dann in das INSERT werfen um sichergehen zu können, dass mann nach dem INSERT auch wirklich den PK des Datensatzes hat. Mit einer Returning clause ist das schlichtweg unnötig, da du direkt im gleichen round trip den PK aus deinem INSERT bekommst.

Hansa 17. Nov 2005 23:28

Re: FireBird 2 bekommt eine RETURNING clause :-)
 
Ja, schaden kann so was kaum. Nur der Nutzen einer Return-Klausel ist mir etwas unklar. Den Trigger mit einer SP (mit Rückgabewert) nachzubauen ist wohl kein Kunststück.


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