Thanks Mark.
That RPG is using it's own way of initializing the date column in my example
to the value '0001-01-01' (ISO format), i.e. ignoring the DB2 default, is
one issue, yes.

But my primary question is how you get a default value to be written at all
when you don't have a write opcode that implicitly handles this for you?
Using the C runtime's _Rwrite in move mode one has to specify a full record
and if you don't have a valid date in the appropriate place it doesn't
compile. Is there another way beyond the LF/View solution?

Best wishes,
Erik

2010/9/16 M. Lazarus <mlazarus@xxxxxxxx>

Erik,

Create a LF over the PF, specifying the fields in the file. The
trick is to OMIT the fields you want DB2 to automatically initialize,
so RPG doesn't use its own rules to populate those fields. If this
case, just include the GRPNAME and CUSER fields.

-mark

At 9/16/2010 09:51 AM, you wrote:
Here's one using ROWID and a date column:

CREATE TABLE STEO01/TEMPTEST (
GRPID SMALLINT GENERATED ALWAYS AS IDENTITY (
START WITH 1 INCREMENT BY 1
NO MINVALUE NO MAXVALUE
NO CYCLE NO ORDER
CACHE 20 )
,
GRPNAME CHAR(25) CCSID 278 NOT NULL DEFAULT '' ,
CUSER CHAR(10) CCSID 278 NOT NULL DEFAULT '' ,
CDATE DATE NOT NULL DEFAULT CURRENT_DATE )
;

And here's how I'd code it in RPG (the formatting will be off, sorry):

h option(*nodebugio)
ftemptest uf a e disk rename(temptest: rtemptest)
/free
*inlr = '1';

grpname = 'xyz';
cuser = 'someone';
write rtemptest;

return;
/end-free

I specify writing to two columns and DB2 puts in values for the other two
(identity column and date).
Is this behaviour possible to imitate?

Thank you.

2010/9/16 <Gene_Gaunt@xxxxxxxxxxxxxxx>

Can you post the DDL and an SQL CREATE and an SQL INSERT ?



From: Erik Olsson <erik.eo.olsson@xxxxxxxxx>
To: mi400@xxxxxxxxxxxx
Date: 09/16/2010 08:49 AM
Subject: [MI400] Write to db containing values defined by DB2
Sent by: mi400-bounces@xxxxxxxxxxxx


Hello,

Posted this on the C list but was adviced to try out here as well.

If I have DDL defined tables with columns holding DB2 generated values
such
as ROWID, defaults as CURRENT_TIMESTAMP etc - how do I code a write to
columns like that using (the C runtime) _Rwrite (I don't know what one
would
use in MI)?

That is, is there a way to emulate how an RPG write opcode handles the
same
situation?

Best wishes,
Erik

_______________________________________________
This is the MI Programming on the AS400 / iSeries (MI400) mailing list
To post a message email: MI400@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/mi400
or email: MI400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/mi400.



This thread ...

Follow-Ups:
Replies:

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

This mailing list archive is Copyright 1997-2020 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 on our policy page. If you have questions about this, please contact [javascript protected email address].