Rechercher dans le manuel MySQL
28. 7. 11. 3 mysql _stmt _attr _set ()
bool mysql_stmt_attr_set(MYSQL_STMT *stmt, enum
enum_stmt_attr_type option, const void *arg)
Description
Can be used to affect behavior for a prepared statement. This function may be called multiple times to set several options.
The option
argument is the option that you
want to set. The arg
argument is the value
for the option. arg
should point to a
variable that is set to the desired attribute value. The
variable type is as indicated in the following table.
The following table shows the possible
option
values.
Option | Argument Type | Function |
---|---|---|
STMT_ATTR_UPDATE_MAX_LENGTH |
bool * |
If set to 1, causes
mysql_stmt_store_result()
to update the metadata
MYSQL_FIELD->max_length value. |
STMT_ATTR_CURSOR_TYPE |
unsigned long * |
Type of cursor to open for statement when
mysql_stmt_execute() is
invoked. *arg can be
CURSOR_TYPE_NO_CURSOR (the default)
or CURSOR_TYPE_READ_ONLY . |
STMT_ATTR_PREFETCH_ROWS |
unsigned long * |
Number of rows to fetch from server at a time when using a cursor.
*arg can be in the range from 1 to
the maximum value of unsigned long .
The default is 1. |
If you use the STMT_ATTR_CURSOR_TYPE
option
with CURSOR_TYPE_READ_ONLY
, a cursor is
opened for the statement when you invoke
mysql_stmt_execute()
. If there
is already an open cursor from a previous
mysql_stmt_execute()
call, it
closes the cursor before opening a new one.
mysql_stmt_reset()
also closes
any open cursor before preparing the statement for
re-execution.
mysql_stmt_free_result()
closes any open cursor.
If you open a cursor for a prepared statement,
mysql_stmt_store_result()
is
unnecessary, because that function causes the result set to be
buffered on the client side.
The following example opens a cursor for a prepared statement and sets the number of rows to fetch at a time to 5:
MYSQL_STMT *stmt;
int rc;
unsigned long type;
unsigned long prefetch_rows = 5;
stmt = mysql_stmt_init(mysql);
type = (unsigned long) CURSOR_TYPE_READ_ONLY;
rc = mysql_stmt_attr_set(stmt, STMT_ATTR_CURSOR_TYPE, (void*) &type);
/* ... check return value ... */
rc = mysql_stmt_attr_set(stmt, STMT_ATTR_PREFETCH_ROWS,
(void*) &prefetch_rows);
/* ... check return value ... */
Traduction non disponible
Le manuel MySQL n'est pas encore traduit en français sur l'infobrol. Seule la version anglaise est disponible pour l'instant.
Document créé le 26/06/2006, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/mysql-rf-mysql-stmt-attr-set.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.