Opens native i5 file.
resource i5_open ( |
string filename [, int mode ] |
A file must be opened with i5_open function prior to access it (reading or writing).
Function i5_open() returns an ID to be used as parameter for reading, updating or adding, research, etc…operations.
It's more efficient to use job *LIBL by giving only the file name, without library name, if of course the user is entitled to necessary and coherent rights to opening mode and path.
You can qualify the path by providing a library name in the form: LIBRARY/NAME.
The current library list can be previously changed by ADDLIBLE commands call issued by i5_remotecmd .
The file to open can be a physical or logical file.
The file to open can have been overridden by a previous OVRDBF command call, issued by i5_remotecmd .
It can also be filtered by an OPNQRYF command call.
If the file doesn’t have any description, as for a 36 format file, an external description can by applied.
The external description is given at then end of the file name, prefixed by "*FMT=".
Example: LIB36F/MYFILE *FMT=DATALIB/DESC36L1
name |
File name. File name can have several formats: - FILE - LIBRARY/FILE - FILE(MEMBER) - LIBRARY/FILE(MEMBER) When library is not specified, the file must be present in the job library list (*LIBL). | |
mode |
File mode to use.. | |
|
I5_OPEN_READ |
Open the file for read only (default) |
I5_OPEN_READWRITE |
Open file for reading and writing | |
I5_OPEN_COMMIT |
Open journalize | |
I5_OPEN_SHRRD |
Shared reading | |
I5_OPEN_SHRUPD |
Shared updating | |
I5_OPEN_SHRNUPD |
Sharing without updating | |
I5_OPEN_EXCLRD |
Open Exclusive; Read allowed | |
I5_OPEN_EXCL |
Open Exclusive | |
connection |
Connection - result of i5_connect
|
Opening option may be combined using PHP usual syntax and "|" (pipe) symbol.
OPEN_READ or I5_OPEN_READWRITE modes are required to be combine with other modes.
To open a file in reading/writing, under commitment control, in exclusive mode:
i5_open("EASYCOM/SP_CUST", I5_OPEN_READWRITE | I5_OPEN_COMMIT | I5_OPEN_EXCL)
Procedures and Data Queue
Easycom uses files description to accede to stored procedures and data queues (see Manufacturer DTAQ-RPC) . Principle is to describe all parameters (names, nature, types) stored in Easycom proper files (YPROCHDR and YPROCPARMS).
Opening procedure syntax is *PGM/name_procedure
Opening data queue syntax is *DTAQ/name_dataqueue.
Returns:
Resource, if "open" is successful, false otherwise.
I5_ERR_DESC_WRONG_DATAOP |
41 |
Wrong operation on a data field of a description |
I5_ERR_PARSEXML |
42 |
Internal error; please contact Aura Equipement; error number 42 |
I5_ERR_PHP_OPTIONSTYPE |
259 |
The type of " I5_OPTIONS_ALIAS" option must be x and not x |
I5_ERR_PHP_OPTIONSNUMBER |
260 |
Option number -1 is unknown. |
/* Opens a file only in reading */
$file_client = i5_open("PROD/CLIENTS");
/* Opens a file only in writing */
$file_web = i5_open("PROD/WEB", I5_OPEN_READWRITE);
/* Opens a file in *LIBL or *CURLIBL */
$file_lib = i5_open("TEST");
$file_clib = i5_open("*CURLIBL/TEST");
/* Opens a particular member */
$file_fact = i5_open("PROD/INVOICES(2005)");
/* Opens a program or a data queue */
$program = i5_open("*PGM/DEMOPGM");
$dataqueue = i5_open("*DTAQ/DEMODATA");
/* Opens two files on two AS400 */
$conn1 = i5_connect("FIRST_AS", "USER1", "PASSWORD1");
$conn2 = i5_connect("SECOND_AS", "USER2", "PASSWORD2");
if ($conn1 && $conn2) {
$file_client1 = i5_open("PROD/CLIENTS", $conn1);
$file_client2 = i5_open("PROD/CLIENTS", $conn2);
}