You are here : Cmysql/mysql.hmysql_set_local_infile_handler

mysql_set_local_infile_handler() - mysql/mysql.h

 This function installs callbacks to be used during the execution
        of LOAD DATA LOCAL
        INFILE statements. It enables application programs to
        exert control over local (client-side) data file reading. The
        arguments are the connection handler, a set of pointers to
        callback functions, and a pointer to a data area that the
        callbacks can use to share information.LOAD DATA LOCAL
        INFILELOAD DATA LOCAL
        INFILETo use
        mysql_set_local_infile_handler(),
        you must write the following callback functions:mysql_set_local_infile_handler()mysql_set_local_infile_handler()int
local_infile_init(void **ptr, const char *filename, void *userdata);The initialization function. This is called once to do any setup
        necessary, open the data file, allocate data structures, and so
        forth. The first void** argument is a pointer
        to a pointer. You can set the pointer (that is,
        *ptr) to a value that will be passed to each
        of the other callbacks (as a void*). The
        callbacks can use this pointed-to value to maintain state
        information. The userdata argument is the
        same value that is passed to
        mysql_set_local_infile_handler().void***ptrvoid*userdatamysql_set_local_infile_handler()mysql_set_local_infile_handler()Make the initialization function return zero for success,
        nonzero for an error.int
local_infile_read(void *ptr, char *buf, unsigned int buf_len);The data-reading function. This is called repeatedly to read the
        data file. buf points to the buffer where the
        read data is stored, and buf_len is the
        maximum number of bytes that the callback can read and store in
        the buffer. (It can read fewer bytes, but should not read more.)bufbuf_lenThe return value is the number of bytes read, or zero when no
        more data could be read (this indicates EOF). Return a value
        less than zero if an error occurs.void
local_infile_end(void *ptr)The termination function. This is called once after
        local_infile_read() has returned zero (EOF)
        or an error. Within this function, deallocate any memory
        allocated by local_infile_init() and perform
        any other cleanup necessary. It is invoked even if the
        initialization function returns an error.local_infile_read()local_infile_init()int
local_infile_error(void *ptr,
                   char *error_msg,
                   unsigned int error_msg_len);The error-handling function. This is called to get a textual
        error message to return to the user in case any of your other
        functions returns an error. error_msg points
        to the buffer into which the message is written, and
        error_msg_len is the length of the buffer.
        Write the message as a null-terminated string, at most
        error_msg_len−1 bytes long.error_msgerror_msg_lenerror_msg_lenThe return value is the error number.Typically, the other callbacks store the error message in the
        data structure pointed to by ptr, so that
        local_infile_error() can copy the message
        from there into error_msg.ptrlocal_infile_error()error_msgAfter calling
        mysql_set_local_infile_handler()
        in your C code and passing pointers to your callback functions,
        you can then issue a
        LOAD DATA LOCAL
        INFILE statement (for example, by using
        mysql_query()). The client
        library automatically invokes your callbacks. The file name
        specified in LOAD
        DATA LOCAL INFILE will be passed as the second
        parameter to the local_infile_init()
        callback.mysql_set_local_infile_handler()mysql_set_local_infile_handler()LOAD DATA LOCAL
        INFILELOAD DATA LOCAL
        INFILEmysql_query()mysql_query()LOAD
        DATA LOCAL INFILELOAD
        DATA LOCAL INFILElocal_infile_init()


Syntax

void mysql_set_local_infile_handler(MYSQL *mysql, int
        (*local_infile_init)(void **, const char *, void *), int
        (*local_infile_read)(void *, char *, unsigned int), void
        (*local_infile_end)(void *), int (*local_infile_error)(void *,
        char*, unsigned int), void *userdata);


Example

int
local_infile_init(void **ptr, const char *filename, void *userdata);


Output / Return Value

 None.


Limitations


Alternatives / See Also


Reference