Access multi membered file from Java

Hi,

I am working on a file modification project which involves craeting a UI for a business team such that they are able to access the latest version of a multi membered physical file on the AS400. The UI is being written in JAVA. I am not too familiar with this and my involvement in the project is to help facilitate the backend needs.

Is there a way in Java that can help use a specific version (or the last version) of a multi membered file? We have used single membered PF's as SQL tables from the java code. We are trying to figure out how to do the same when there are more than 1 version.

Thanks
Ali
bhagataliAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
gudii9Connect With a Mentor Commented:
Here is interesting explanation, link
You can do this by creating an SQL Alias. Suppose that you have a physical file MYLIB/SALES with twelve members (one member for each month of the year). To access JANUARY, you must first create an alias with the following SQL command:

CREATE ALIAS MYLIB/SALES_JANUARY FOR MYLIB/SALES(JANUARY)

http://as400samplecode.blogspot.com/2011/09/java-access-multiple-member-physical.html
0
 
MurpheyConnect With a Mentor Application ConsultantCommented:
Hi ALi,

You can make an Alias for a member:

CREATE ALIAS MyLib/MyAlias FOR MyLib/MyFile (Member1)

Use that alias in the rest of your SQL;

SELECT * FROM MyLib/MyAlias

If possibel, create the alias in QTEMP, so that not remain on disk  :-)

Successs
0
 
Dave FordSoftware Developer / Database AdministratorCommented:
As the previous two posts point out, creating the alias in QTEMP is the best way to go. But, in case you need an alternative, you can also issue a CL command to override to the target member before running your SQL.

e.g.
OVRDBF FILE(MyTable) TOFILE(ACALIB/MyTable) MBR(TargetMbr)

HTH,
DaveSlash
0
Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
bhagataliAuthor Commented:
@Dave: I initially was thinking of the OVRDBF command too but I am not certain of will the override remain when I execute the SQL query on that file. We know how an override on AS400 remains for the duration of a job. From Java, with all the connections and AS400 object class that have to be created I was curious if the override would still be in effect.

@murphy and @gudii: thanks for the alias and QTEMP suggestions.
Regards
Ali
0
 
Dave FordSoftware Developer / Database AdministratorCommented:
The OVRDBF has always worked from me through ODBC and JDBC, but I still think the CREATE ALIAS in QTEMP is a better solution.
0
 
MurpheyApplication ConsultantCommented:
Sorry gudii9,

I think you posted the solution while I was still typing it.

:-)
0
 
tliottaCommented:
In general, an ALIAS can be preferred when a permanent object may be shared among users or across sessions (or across jobs). An OVRDBF can be preferred when it is known to be needed strictly local to the process.

CREATE ALIAS creates a permanent object. Technically, it's implemented as a DDM file. As such, all of the overhead of object creation (and perhaps deletion if not actually permanent) gets brought in. This includes setting ownership and authority attributes. Those attributes may cascade into changes to related objects such as the owning profile.

An OVRDBF simply puts some changes into any ODP in that job. No significant overhead.

Either one can work well. There's no real way to say one is better. It always depends on the environments in which they're used.

Tom
0
 
bhagataliAuthor Commented:
Thanks Tom for the added explanation.

Regards
Ali.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.