Rechercher dans le manuel MySQL
28. 7. 7. 73 mysql _set _local _infile _handler ()
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);
Description
This function installs callbacks to be used during the
execution of LOAD
DATA LOCAL
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.
To use
mysql_set_local_infile_handler()
,
you must write the following callback functions:
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()
.
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.)
The 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.
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.
The 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
.
After 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
statement (for example, by using
mysql_query()
). The client
library automatically invokes your callbacks. The file name
specified in LOAD
DATA LOCAL
will be passed as the second parameter to
the local_infile_init()
callback.
Nederlandse vertaling
U hebt gevraagd om deze site in het Nederlands te bezoeken. Voor nu wordt alleen de interface vertaald, maar nog niet alle inhoud.Als je me wilt helpen met vertalingen, is je bijdrage welkom. Het enige dat u hoeft te doen, is u op de site registreren en mij een bericht sturen waarin u wordt gevraagd om u toe te voegen aan de groep vertalers, zodat u de gewenste pagina's kunt vertalen. Een link onderaan elke vertaalde pagina geeft aan dat u de vertaler bent en heeft een link naar uw profiel.
Bij voorbaat dank.
Document heeft de 26/06/2006 gemaakt, de laatste keer de 26/10/2018 gewijzigd
Bron van het afgedrukte document:https://www.gaudry.be/nl/mysql-rf-mysql-set-local-infile-handler.html
De infobrol is een persoonlijke site waarvan de inhoud uitsluitend mijn verantwoordelijkheid is. De tekst is beschikbaar onder CreativeCommons-licentie (BY-NC-SA). Meer info op de gebruiksvoorwaarden en de auteur.
Referenties
Deze verwijzingen en links verwijzen naar documenten die geraadpleegd zijn tijdens het schrijven van deze pagina, of die aanvullende informatie kunnen geven, maar de auteurs van deze bronnen kunnen niet verantwoordelijk worden gehouden voor de inhoud van deze pagina.
De auteur Deze site is als enige verantwoordelijk voor de manier waarop de verschillende concepten, en de vrijheden die met de referentiewerken worden genomen, hier worden gepresenteerd. Vergeet niet dat u meerdere broninformatie moet doorgeven om het risico op fouten te verkleinen.