Jevgeni,

you can also check if the file already exist in the QTEMP ?

if( access("/QSYS.LIB/QTEMP.LIB/MYFILE.FILE", F_OK) == 0 ) -> mean exist ...

peter

-----Original Message-----
From: c400-l-bounces@xxxxxxxxxxxx [mailto:c400-l-bounces@xxxxxxxxxxxx] On Behalf Of Lindbom, Joakim
Sent: Freitag, 15. Februar 2013 10:32
To: Bare Metal Programming IBM i (AS/400 and iSeries)
Subject: Re: [C400-L] Creating temporary table

Go for option 2) and ignore any error coming out. Use "DLTF QTEMP/filename" as command.

/Joakim

-----Original Message-----
From: c400-l-bounces@xxxxxxxxxxxx [mailto:c400-l-bounces@xxxxxxxxxxxx] On Behalf Of Jevgeni Astanovski
Sent: den 15 februari 2013 10:07
To: c400-l@xxxxxxxxxxxx
Subject: [C400-L] Creating temporary table

Hello,

Such a trivial operation and I understood that I do not see simple solution...
A program needs to use a temporary table, I assumed that QTEMP is the best place for it.
So I have a table with the same structure in MYLIB and program needs to create its copy, however, empty, and in QTEMP.

I shall issue a CL command CRTDUPOBJ from my C program, but I cannot gurantee, that the table does not exist there already.
I see two ways to protect myself from this situation:

1. Capture relevant error message (probably CPD2104, object already exist);

2. Issue unlink (Unix style API) to delete this file before making CRTDUPOBJ - but this will end in error if file does not exist.

Or I should rather attempt to open file using _Ropen with mode "wr" and if it ends in error, issue CRTDUPOBJ and make _Ropen again?

All these methods seem odd - that made me think that maybe there is some better way...

Thanks,

Jevgeni

--
This is the Bare Metal Programming IBM i (AS/400 and iSeries) (C400-L) mailing list To post a message email: C400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/c400-l
or email: C400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at http://archive.midrange.com/c400-l.


________________________________

Capgemini is a trading name used by the Capgemini Group of companies which includes Capgemini Sverige AB, a company registered in Sweden (number 556092-3053) whose registered office is at Gustavslundsvägen 131 Box 825 – S-161 24 Bromma.
This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.
--
This is the Bare Metal Programming IBM i (AS/400 and iSeries) (C400-L) mailing list To post a message email: C400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/c400-l
or email: C400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at http://archive.midrange.com/c400-l.


This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2019 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available here. If you have questions about this, please contact [javascript protected email address].