int mysql_stmt_attr_set(MYSQL_STMT *stmt, enum
enum_stmt_attr_type option, const void *arg)
Beschreibung
Kann genutzt werden, um das Verhalten einer vorbereiteten Anweisung zu beeinflussen. Diese Funktion kann auch mehrmals aufgerufen werden, um mehrere Optionen zu setzen.
Das option
-Argument ist die Option, die Sie
einstellen möchten, und arg
ist ihr Wert.
Wenn die Option ein Integer ist, muss arg
auf den Wert eines Integers verweisen.
Mögliche option
-Werte:
Option | Argumenttyp | Funktion |
STMT_ATTR_UPDATE_MAX_LENGTH |
my_bool * |
Wenn 1: Metadaten zum Update
MYSQL_FIELD->max_length in
mysql_stmt_store_result() . |
STMT_ATTR_CURSOR_TYPE |
unsigned long * |
Typ des Cursors, der bei Aufruf von
mysql_stmt_execute() für die
Anweisung geöffnet wird. *arg kann
CURSOR_TYPE_NO_CURSOR
(Standardwert) oder
CURSOR_TYPE_READ_ONLY sein. |
STMT_ATTR_PREFETCH_ROWS |
unsigned long * |
Anzahl der Zeilen, die mit einem Cursor gleichzeitig vom Server geholt
werden. *arg liegt zwischen 1 und
dem Maximalwert von unsigned long .
Der Standardwert ist 1. |
Wenn Sie die Option STMT_ATTR_CURSOR_TYPE
mit CURSOR_TYPE_READ_ONLY
verwenden, wird
ein Cursor für die Anweisung geöffnet, sobald Sie
mysql_stmt_execute()
aufrufen. Existiert
bereits ein geöffneter Cursor aus einem früheren
mysql_stmt_execute()
-Aufruf, schließt die
Option diesen Cursor, bevor ein neuer geöffnet wird. Die
Funktion mysql_stmt_reset()
schließt auch
offene Cursors, bevor sie die Anweisung zur erneuten
Ausführung vorbereitet.
mysql_stmt_free_result()
schließt
ebenfalls einen eventuell noch offenen Cursor.
Wenn Sie einen Cursor für eine vorbereitete Anweisung
öffnen, ist mysql_stmt_store_result()
überflüssig, da diese Funktion die Ergebnismenge auf der
Clientseite puffern lässt.
Die Option STMT_ATTR_CURSOR_TYPE
wurde in
MySQL 5.0.2 hinzugefügt. Die Option
STMT_ATTR_PREFETCH_ROWS
wurde in MySQL
5.0.6 hinzugefügt.
Rückgabewerte
0
, wenn alles okay ist. Ein von null
verschiedener Wert, wenn option
unbekannt
ist.
Fehler
Keine.
Beispiel
Das folgende Beispiel öffnet einen Cursor für eine vorbereitete Anweisung und setzt die Anzahl der in einem Schwung abzuholenden Zeilen auf 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); /* ... prüfe Rückgabewert... */ rc = mysql_stmt_attr_set(stmt, STMT_ATTR_PREFETCH_ROWS, (void*) &prefetch_rows); /* ... prüfe Rückgabewert ... */
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.