The mi_lo_from_file_by_lofd() function
The mi_lo_from_file_by_lofd() function copies the contents of an operating-system file on the server or client computer to an open smart large object.
Syntax
mi_integer mi_lo_from_file_by_lofd(conn, LO_fd, fname_spec, open_mode,
offset, amount)
MI_CONNECTION *conn;
MI_LO_FD LO_fd;
const char *fname_spec;
mi_integer open_mode;
mi_integer offset;
mi_integer amount;
- conn
- This is one of the following connection values:
A pointer to a connection descriptor established by a previous call to mi_open(), mi_server_connect(), or mi_server_reconnect().
A NULL-valued pointer (database server only)
- LO_fd
- A file descriptor for an existing smart large object
- fname_spec
- The path to the operating-system file to copy into a smart large object.
- open_mode
- An integer bitmask to indicate how to open the operating-system file and where this file is located. For a list of valid file-mode constants, see the following “Usage” section.
- offset
- The point to begin reading in the file. The offset value
is the number of bytes from the beginning of the file, starting at
0
. - amount
- The amount of data to read, starting at the offset. An amount value
of
-1
means read to the end of the file.
Valid in client LIBMI application? | Valid in user-defined routine? |
---|---|
No | Yes |
Usage
The mi_lo_from_file_by_lofd() function
enables you to write to a smart large object that is already open.
This function provides more flexibility than mi_lo_from_file() in
the following ways:
- You can position the LO file descriptor anywhere before the operation.
- You can copy multiple files to a single smart large object.
To include environment variables in the fname_spec path,
use the following syntax:
$ENV_VAR
You must set these environment variables in the database server environment, before the database server starts.
The mi_lo_from_file_by_lofd() function
can create the target files on either the server or the client computer.
The file-mode flag values for the open_mode argument indicate
the location of the file to copy and the access mode of the source
file. Valid values include the following file-mode constants.
- MI_O_EXCL
- Open the file only if fname_spec does not exist.
- MI_O_TRUNC
- Zero out the input file before reading it.
- MI_O_APPEND
- Allow appending to the end of the file. (This function does not write to the source file.)
- MI_O_RDWR
- Open the file in read/write mode. (This function does not write to the source file.)
- MI_O_RDONLY
- Open the file in read-only mode.
- MI_O_TEXT
- Process the file as text (not binary). (Binary is used if you do not specify MI_O_TEXT.)
- MI_O_SERVER_FILE
- The fname_spec file is on the server computer.
- MI_O_CLIENT_FILE
- The fname_spec file is on the client computer.
Important: The MI_O_TRUNC flag is valid
but is not often useful in a DataBlade® API module.
The
default open_mode value is:
MI_O_RDONLY | MI_O_CLIENT_FILE
Server only: The mi_lo_from_file_by_lofd() function
does not need a connection descriptor to execute. If your UDR does
not need a valid connection for other operations, you can specify
a NULL-valued pointer for the conn parameter to establish a
NULL connection. For information about the advantages of a NULL connection,
see the HCL OneDB™
DataBlade API Programmer's
Guide.
Return values
- MI_OK
- The function was successful.
- MI_ERROR
- The function was not successful.