Solved

Access multi membered file from Java

Posted on 2012-03-14
8
544 Views
Last Modified: 2012-03-21
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
0
Comment
Question by:bhagatali
  • 2
  • 2
  • 2
  • +2
8 Comments
 
LVL 7

Accepted Solution

by:
gudii9 earned 300 total points
ID: 37720603
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
 
LVL 16

Assisted Solution

by:theo kouwenhoven
theo kouwenhoven earned 200 total points
ID: 37720635
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
 
LVL 18

Expert Comment

by:daveslash
ID: 37720704
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
Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

 

Author Comment

by:bhagatali
ID: 37720843
@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
 
LVL 18

Expert Comment

by:daveslash
ID: 37720877
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
 
LVL 16

Expert Comment

by:theo kouwenhoven
ID: 37721645
Sorry gudii9,

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

:-)
0
 
LVL 27

Expert Comment

by:tliotta
ID: 37745651
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
 

Author Comment

by:bhagatali
ID: 37747158
Thanks Tom for the added explanation.

Regards
Ali.
0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Protect jar file - windows app 2 53
difference of if loops 23 51
fibonacci ten numbers 4 40
Cisco ASA: Java web start no go, asdm launcher no go 3 16
Are you developing a Java application and want to create Excel Spreadsheets? You have come to the right place, this article will describe how you can create Excel Spreadsheets from a Java Application. For the purposes of this article, I will be u…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
Viewers will learn about the regular for loop in Java and how to use it. Definition: Break the for loop down into 3 parts: Syntax when using for loops: Example using a for loop:
This video teaches viewers about errors in exception handling.

825 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question