× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



And, now days, that should be an Identity Key (with rare exception) with a
unique key as candidate keys. All table referencing that table should be
using the identity key to join the tables. (My opinion only). This ought to
set off a firestorm.

Example.

Master table.

CREATE OR REPLACE TABLE SYSTEM_DEVELOPER_DEBUG_LIST_MASTER FOR SYSTEM NAME
XVDBLM (
DEBUG_IDENTITY_MASTER FOR COLUMN DMKEYM INTEGER GENERATED ALWAYS AS
IDENTITY (
START WITH 1
INCREMENT BY 1
NO MINVALUE NO
MAXVALUE
NO CYCLE NO
ORDER
CACHE 20 ),

DEVELOPER_USER_PROFILE FOR COLUMN DMDEVUSER VARCHAR(10) CCSID 37 NOT
NULL ,
.... Other fields

CONSTRAINT Q_XVDBLM_DMKEY_PRIME PRIMARY KEY( DEBUG_IDENTITY_MASTER ) )

RCDFMT RDBLM;



ALTER TABLE SYSTEM_DEVELOPER_DEBUG_LIST_MASTER

ADD CONSTRAINT Q_XVDBLM_DMDEVUSER_00001

UNIQUE( DEVELOPER_USER_PROFILE ) ;


Detail table.


CREATE OR REPLACE TABLE SYSTEM_DEVELOPER_DEBUG_LIST_LIBRARIES FOR SYSTEM
NAME XVDBLL (
DEBUG_IDENTITY_LIBRARIES FOR COLUMN DLKEYL INTEGER GENERATED ALWAYS
AS IDENTITY (
START WITH 1
INCREMENT BY 1
NO MINVALUE NO
MAXVALUE
NO CYCLE NO
ORDER
CACHE 20 ),

DEVELOPER_IDENTITY FOR COLUMN DLDEVID INTEGER ,

LOAD_SEQUENCE FOR COLUMN DLLOADSEQ SMALLINT,
.... other fields.
CONSTRAINT Q_XVDBLL_DLKEY_PRIME PRIMARY KEY( DEBUG_IDENTITY_LIBRARIES ) )

RCDFMT RDBLL;

ALTER TABLE SYSTEM_DEVELOPER_DEBUG_LIST_LIBRARIES
ADD CONSTRAINT Q_XVDBLL_DLDEVID_DLLIBRARY_00001
UNIQUE( DEVELOPER_IDENTITY, LIBRARY_NAME ) ;

ALTER TABLE SYSTEM_DEVELOPER_DEBUG_LIST_LIBRARIES
ADD CONSTRAINT Q_XVDBLL_DLDEVID_DLLIBRARY_00002
UNIQUE( DEVELOPER_IDENTITY, LOAD_SEQUENCE) ;

ALTER TABLE SYSTEM_DEVELOPER_DEBUG_LIST_LIBRARIES
ADD CONSTRAINT Q_XVDBLL_DLDEVID_00001
FOREIGN KEY( DEVELOPER_IDENTITY )
REFERENCES SYSTEM_DEVELOPER_DEBUG_LIST_MASTER ( DEBUG_IDENTITY_MASTER )
ON DELETE NO ACTION
ON UPDATE NO ACTION ;



On Mon, Sep 27, 2021 at 9:44 AM Charles Wilt <charles.wilt@xxxxxxxxx> wrote:

I really hope your standards for SQL Tables have a primary key...

Just like your standards for PF should include a unique key.

Charles

On Mon, Sep 27, 2021 at 10:41 AM Brian Parkins <goodprophet.bp@xxxxxxxxx>
wrote:

A Table = non-keyed, Physical File
A View = non-keyed, single-format, Logical File
An Index = a keyed, non-join, single format, Logical File

RPG IV operations can be used in exactly the same manner as with the
"native" (DDS + CRTxx) defined objects.

To complicate matters, don't forget you CAN use CHAIN, SETLL etc. on a
View - if processing by relative record number, (i.e. non-keyed
processing).

HTH,
Brian.

On 27/09/2021 17:23, Alan Campin wrote:
it's not that simple. A physical file created with DDS and a table
created
with SQL are the same thing to RPG. If the table has an index, you can
do
operations like Chain and Setll just like a DDS defined table.

Views are more complex. Views don't have indexes so the only thing that
you
could do with a view in an RPG program is read it sequentially or write
to
it.

An SQL index looks like a logical file to an RPG program so you could
use
it like a logical file. That's not normally how you would do it. You
would
define an SQL index and then define a logical and it should share the
access path (Index) and it is just another logical to RPG.



On Mon, Sep 27, 2021 at 9:11 AM K Crawford <kscx3ksc@xxxxxxxxx> wrote:

I am trying to help someone and clarify for me the following. I don't
think I am typing in my searches correctly. What I am looking for is:
What native RPGLE I/O can you do over a SQL Table?
What native RPGLE I/O can you do over a SQL View?
What native RPGLE I/O can you do over a SQL Index?
A chart something like:
I/O Table View Index
Read Yes Yes Yes
Reade No No Yes
Readp x x x
Readpe x x x
Chain x x x
SetLL x x x
SetGT x x x
Delete x x x
Write x x x

--
KCrawford

--
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://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related
questions.

Help support midrange.com by shopping at amazon.com with our affiliate
link: https://amazon.midrange.com

--
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://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related
questions.

Help support midrange.com by shopping at amazon.com with our affiliate
link: https://amazon.midrange.com


As an Amazon Associate we earn from qualifying purchases.

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-2024 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].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.