Kapitel 9: MySQL-APIs 547
Auf manchen Systemen funktioniert der Versuch, einen Wert des Typs my_
ulonglong auszugeben, nicht. Um einen solchen Wert auszugeben, wandeln Sie
ihn in unsigned long um und benutzen Sie ein %lu-Ausgabeformat. Beispiel:
printf (Anzahl von Zeilen: %lu\n", (unsigned long) mysql_num_rows(result));
Die MYSQL_FIELD-Struktur enth¨alt die unten aufgef¨uhrten Elemente:
char * name
Der Name des Feldes, als NULL-begrenzte Zeichenkette.
char * table
Der Name der Tabelle, die dieses Feld enth¨alt, falls es kein berechnetes Feld ist.
Bei berechneten Feldern ist der table-Wert eine leere Zeichenkette.
char * def
Der Vorgabewert dieses Felds als eine NULL-begrenzte Zeichenkette. Dieser
wird nur gesetzt, wenn Sie mysql_list_fields() benutzen.
enum enum_field_types-Typ
Der Typ des Felds. Der type-Wert kann einer der folgenden sein:
Typwert Typbedeutung
FIELD_TYPE_TINY TINYINT-Feld
FIELD_TYPE_SHORT SMALLINT-Feld
FIELD_TYPE_LONG INTEGER-Feld
FIELD_TYPE_INT24 MEDIUMINT-Feld
FIELD_TYPE_LONGLONG BIGINT-Feld
FIELD_TYPE_DECIMAL DECIMAL- oder NUMERIC-Feld
FIELD_TYPE_FLOAT FLOAT-Feld
FIELD_TYPE_DOUBLE DOUBLE- oder REAL-Feld
FIELD_TYPE_TIMESTAMP TIMESTAMP-Feld
FIELD_TYPE_DATE DATE-Feld
FIELD_TYPE_TIME TIME-Feld
FIELD_TYPE_DATETIME DATETIME-Feld
FIELD_TYPE_YEAR YEAR-Feld
FIELD_TYPE_STRING CHAR- oder VARCHAR-Feld
FIELD_TYPE_BLOB BLOB- oder TEXT-Feld (benutzen Sie max_
length, um die maximale L¨ange festzulegen)
FIELD_TYPE_SET SET-Feld
FIELD_TYPE_ENUM ENUM-Feld
FIELD_TYPE_NULL NULL-Feld
FIELD_TYPE_CHAR
Veraltet; benutzen Sie statt dessen
FIELD_
TYPE_TINY
Sie k¨onnen das IS_NUM()-Makro benutzen, um zu testen, ob ein Feld einen
numerischen Typ besitzt oder nicht.
¨
Ubergeben Sie den type-Wert an IS_
NUM(), und Sie erhalten WAHR (true), wenn das Feld numerisch ist:
if (IS_NUM(field->type))
printf("Feld ist numerisch\n");
unsigned int length
Die Breite des Felds, wie in der Tabellendefinition festgelegt.
Comentarios a estos manuales