LLD_IO* lld_open(conn, lob, flags, error) MI_CONNECTION* conn; MI_ROW* lob; mi_integer flags, mi_integer* error);
LLD_IO* lld_open(lob, flags, error); EXEC SQL BEGIN DECLARE SECTION; PARAMETER ROW lob; EXEC SQL END DECLARE SECTION; int flags;int* error;
In the lob parameter, you pass an lld_locator row to identify the large object to open. In the lo_protocol field of this row, you specify the type of the large object to open. The lld_open() function calls an appropriate open routine based on the type you specify. For example, for a file, lld_open() uses an operating system file function to open the file, whereas, for a smart large object, it calls the server's mi_lo_open() routine.
Large Object Locator does not directly support two fundamental database features, transaction rollback and concurrency control. Therefore, if the transaction in which you call lld_open() is aborted, you should call lld_close() to close the object and reclaim any allocated resources.
Your application should also provide some means, such as locking a row, to guarantee that multiple users cannot write to a large object simultaneously.
See Limitations for more information about transaction rollback and concurrency control.
On success, this function returns a pointer to an LLD_IO structure it allocates. The LLD_IO structure is private, and you should not directly access it or modify its contents. Instead, you can pass the LLD_IO structure's pointer to Large Object Locator routines such as lld_write(), lld_read(), and so on, that access open large objects.
A large object remains open until you explicitly close it with the lld_close() function. Therefore, if you encounter error conditions after opening a large object, you are responsible for reclaiming resources by closing it.
On failure, this function returns NULL.
lld_close(), page lld_close()
lld_create(), page lld_create()
lld_read(), page lld_read()
lld_seek(), page lld_seek()
lld_tell(), page lld_tell()
lld_write(), page lld_write()