Hi,
Sorry, I'm too fast to answer...
Change your first insert like this :
SELECT RRN(X)
INTO :RRN
FROM FINAL TABLE(INSERT INTO FFFFFF(f1, f2...) VALUES (:v1, :v2, ...)) AS X;
-----Message d'origine-----
De : RPG400-L <rpg400-l-bounces@xxxxxxxxxxxxxxxxxx> De la part de Jean-Marc DUVAL via RPG400-L
Envoyé : lundi 16 mai 2022 09:11
À : RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx>
Cc : Jean-Marc DUVAL <jean-marc.duval@xxxxxxxxxxx>
Objet : RE: How to Undo an SQL Insert
ATTENTION : Ce message provient d'une source EXTERNE. Veuillez n'ouvrir les liens ou pièces jointes que si vous êtes sûr de l'expéditeur.
Hi Greg,
A solution may be, if you can know the first and the last raw added and if the file don't have REUSEDLT(*YES), using relative record number to delete them : DELETE FROM FFFFFFF AS X WHERE RRN(X) BETWEEN first_row AND last_row.
-----Message d'origine-----
De : RPG400-L <rpg400-l-bounces@xxxxxxxxxxxxxxxxxx> De la part de Greg Wilburn Envoyé : vendredi 13 mai 2022 21:11 À : RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx> Objet : RE: How to Undo an SQL Insert
ATTENTION : Ce message provient d'une source EXTERNE. Veuillez n'ouvrir les liens ou pièces jointes que si vous êtes sûr de l'expéditeur.
Unfortunately, the file does not have a unique key or auto-id field, and it is not currently journaled. It's one of the biggest files on our system @ 36 million rows. As a transaction file, rows are never deleted (only inserted).
Some more info
I have never used journaling before (no rollback or commit).
My procedure is inside a service program that updates other files (COMMIT=*NONE).
This service pgm is used all over the place.
So if I turn on journaling for this file would it journal all transactions? Or just those from my program? All other programs updating this file do so via RPG (not SQL).
For now, I have added an extra SQL statement to check for the condition before attempting to insert - but that only checks for the condition that I have anticipated.
This will most likely take care of any issue, but...
-----Original Message-----
From: RPG400-L <rpg400-l-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of Daniel Gross
Sent: Friday, May 13, 2022 11:45 AM
To: RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: Re: How to Undo an SQL Insert
If your file has a unique key - this is the way to go. If your file has an auto-id field, you can retrieve the value of the given id after the insert, and delete the file.
But most probably, commitment control is the way to go - simply roll back after the insert - and it’s gone. Of course, old programs can use „nc“ and your program uses „cs“ - it doesn’t hurt.
HTH
Daniel
Von meinem iPhone gesendet
Am 13.05.2022 um 16:25 schrieb Charles Wilt <charles.wilt@xxxxxxxxx>:
Just because your ERP doesn't use commitment control, doesn't mean a
process you've written can't use it.
Unless the file isn't journaled...
You have the data you inserterted, I assume there's a primary or unique key.
Charles
On Fri, May 13, 2022 at 8:13 AM Greg Wilburn <
gwilburn@xxxxxxxxxxxxxxxxxxxxxxx> wrote:
I'm working with a legacy transaction file from our ERP (i.e.
Commit=*none).
My SQLRPGLE service program procedure inserts two records/rows into
the file (they are complementary rows - both are necessary)
If the first insert fails, I simply exit the procedure with an error.
But I'm not sure how to handle the situation where the first insert
is successful, but the second insert fails. If this occurs, I need
to remove the row I successfully inserted.
Is there some way to capture the exact row I inserted successfully?
Like maybe the relative record number? Or am I out of luck here.
TIA,
Greg
[Logo]<https://urldefense.com/v3/__https://www.totalbizfulfillment.com/__;!!J76aczzK!yVYyM4Jy8554KsJy8yEJvnXZMc0WAVZc47wEAs73woK4YbAU1755Cb-MRX_ui131SaGz5TyJ0T8-KVpzfd5C97oTef2yWJzrXdU$ > Greg Wilburn
Director of IT
301.895.3792 ext. 1231
301.895.3895 direct
gwilburn@xxxxxxxxxxxxxxxxxxxxxxx<mailto:gwilburn@totalbizfulfillment.
com>
1 Corporate Dr
Grantsville, MD 21536
https://urldefense.com/v3/__http://www.totalbizfulfillment.com__;!!J7
6aczzK!yVYyM4Jy8554KsJy8yEJvnXZMc0WAVZc47wEAs73woK4YbAU1755Cb-MRX_ui1
31SaGz5TyJ0T8-KVpzfd5C97oTef2yd9mHAYU$
<https://urldefense.com/v3/__http://www.totalbizfulfillment.com__;!!J
76aczzK!yVYyM4Jy8554KsJy8yEJvnXZMc0WAVZc47wEAs73woK4YbAU1755Cb-MRX_ui
131SaGz5TyJ0T8-KVpzfd5C97oTef2yd9mHAYU$ >
--
This is the RPG programming on IBM i (RPG400-L) mailing list To post
a message email: RPG400-L@xxxxxxxxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit:
https://urldefense.com/v3/__https://lists.midrange.com/mailman/listin
fo/rpg400-l__;!!J76aczzK!yVYyM4Jy8554KsJy8yEJvnXZMc0WAVZc47wEAs73woK4
YbAU1755Cb-MRX_ui131SaGz5TyJ0T8-KVpzfd5C97oTef2y6yxOUH4$
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at
https://urldefense.com/v3/__https://archive.midrange.com/rpg400-l__;!!J76aczzK!yVYyM4Jy8554KsJy8yEJvnXZMc0WAVZc47wEAs73woK4YbAU1755Cb-MRX_ui131SaGz5TyJ0T8-KVpzfd5C97oTef2y7SN0nXk$ .
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription
related questions.
Help support midrange.com by shopping at amazon.com with our
affiliate
link:
https://urldefense.com/v3/__https://amazon.midrange.com__;!!J76aczzK!
yVYyM4Jy8554KsJy8yEJvnXZMc0WAVZc47wEAs73woK4YbAU1755Cb-MRX_ui131SaGz5
TyJ0T8-KVpzfd5C97oTef2y6vgcyY4$
--
This is the RPG programming on IBM i (RPG400-L) mailing list To post a
message email: RPG400-L@xxxxxxxxxxxxxxxxxx To subscribe, unsubscribe,
or change list options,
visit:
https://urldefense.com/v3/__https://lists.midrange.com/mailman/listinf
o/rpg400-l__;!!J76aczzK!yVYyM4Jy8554KsJy8yEJvnXZMc0WAVZc47wEAs73woK4Yb
AU1755Cb-MRX_ui131SaGz5TyJ0T8-KVpzfd5C97oTef2y6yxOUH4$
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at
https://urldefense.com/v3/__https://archive.midrange.com/rpg400-l__;!!J76aczzK!yVYyM4Jy8554KsJy8yEJvnXZMc0WAVZc47wEAs73woK4YbAU1755Cb-MRX_ui131SaGz5TyJ0T8-KVpzfd5C97oTef2y7SN0nXk$ .
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.
Help support midrange.com by shopping at amazon.com with our affiliate
link:
https://urldefense.com/v3/__https://amazon.midrange.com__;!!J76aczzK!y
VYyM4Jy8554KsJy8yEJvnXZMc0WAVZc47wEAs73woK4YbAU1755Cb-MRX_ui131SaGz5Ty
J0T8-KVpzfd5C97oTef2y6vgcyY4$
--
This is the RPG programming on IBM i (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit:
https://urldefense.com/v3/__https://lists.midrange.com/mailman/listinfo/rpg400-l__;!!J76aczzK!yVYyM4Jy8554KsJy8yEJvnXZMc0WAVZc47wEAs73woK4YbAU1755Cb-MRX_ui131SaGz5TyJ0T8-KVpzfd5C97oTef2y6yxOUH4$
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at
https://urldefense.com/v3/__https://archive.midrange.com/rpg400-l__;!!J76aczzK!yVYyM4Jy8554KsJy8yEJvnXZMc0WAVZc47wEAs73woK4YbAU1755Cb-MRX_ui131SaGz5TyJ0T8-KVpzfd5C97oTef2y7SN0nXk$ .
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.
Help support midrange.com by shopping at amazon.com with our affiliate link:
https://urldefense.com/v3/__https://amazon.midrange.com__;!!J76aczzK!yVYyM4Jy8554KsJy8yEJvnXZMc0WAVZc47wEAs73woK4YbAU1755Cb-MRX_ui131SaGz5TyJ0T8-KVpzfd5C97oTef2y6vgcyY4$
--
This is the RPG programming on IBM i (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit:
https://urldefense.com/v3/__https://lists.midrange.com/mailman/listinfo/rpg400-l__;!!J76aczzK!yVYyM4Jy8554KsJy8yEJvnXZMc0WAVZc47wEAs73woK4YbAU1755Cb-MRX_ui131SaGz5TyJ0T8-KVpzfd5C97oTef2y6yxOUH4$
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at
https://urldefense.com/v3/__https://archive.midrange.com/rpg400-l__;!!J76aczzK!yVYyM4Jy8554KsJy8yEJvnXZMc0WAVZc47wEAs73woK4YbAU1755Cb-MRX_ui131SaGz5TyJ0T8-KVpzfd5C97oTef2y7SN0nXk$ .
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.
Help support midrange.com by shopping at amazon.com with our affiliate link:
https://urldefense.com/v3/__https://amazon.midrange.com__;!!J76aczzK!yVYyM4Jy8554KsJy8yEJvnXZMc0WAVZc47wEAs73woK4YbAU1755Cb-MRX_ui131SaGz5TyJ0T8-KVpzfd5C97oTef2y6vgcyY4$
--
This is the RPG programming on IBM i (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit:
https://urldefense.com/v3/__https://lists.midrange.com/mailman/listinfo/rpg400-l__;!!J76aczzK!wd0oN7Tif6NGHu98Kg7Xbu9DLc09iKFxP8sHMDZ22U0xVS75iAqX-a3mmX3V_LMUrnz-g0gWUeyT_OPB8t6zrXMfP8JaEA$
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at
https://urldefense.com/v3/__https://archive.midrange.com/rpg400-l__;!!J76aczzK!wd0oN7Tif6NGHu98Kg7Xbu9DLc09iKFxP8sHMDZ22U0xVS75iAqX-a3mmX3V_LMUrnz-g0gWUeyT_OPB8t6zrXMCz6ONeA$ .
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.
Help support midrange.com by shopping at amazon.com with our affiliate link:
https://urldefense.com/v3/__https://amazon.midrange.com__;!!J76aczzK!wd0oN7Tif6NGHu98Kg7Xbu9DLc09iKFxP8sHMDZ22U0xVS75iAqX-a3mmX3V_LMUrnz-g0gWUeyT_OPB8t6zrXMrerx3NQ$
As an Amazon Associate we earn from qualifying purchases.