| |
関数リファレンス |
|
| |
|
関数 |
mysql_fetch_fields() |
|
すべてのフィールドを構造体へ返す |
| |
|
書式 |
|
|
|
MYSQL_FIELD
*mysql_fetch_fields(*result)
MYSQL_RES
*result; |
MYSQL RES構造体 |
|
|
|
戻り値 |
|
|
|
|
|
|
結果セットの全ての項目の
MYSQL_FIELD 構造体の配列 |
|
|
|
エラー |
|
|
|
|
|
|
無し
|
| |
|
機能 |
|
|
|
結果セットのすべての
MYSQL_FIELD
構造体の配列を返します。各構造体は結果セットの一つのフィールドのフィールド定義を提供します。
mysql_fetch_field関数と似ているが、すべてのフィールド情報を一命令で実行できる。MYSQL_FIELD
構造体を配列にしているのが特徴。サンプルではfields=mysql_fetch_fields(result);でfieldsにポインタを渡している。各フィールドはfields[i].nameのようにすれば参照できる。
mysql.hのMYSQL_FIELD構造体
typedef struct st_mysql_field {
char *name; /* Name of column */
char *table; /* Table of column if column was a field */
char *def; /* Default value (set by mysql_list_fields) */
enum enum_field_types type; /* Type of field. Se
mysql_com.h for types */
unsigned int length; /* Width of column */
unsigned int max_length; /* Max width of selected set */
unsigned int flags; /* Div flags */
unsigned int decimals; /* Number of decimals in field */
} MYSQL_FIELD;
フィールド名以外にタイプや長さなどをこのMYSQL_FIELD構造体から参照することが出来る。
変数の説明
| char *name |
フィールド名 |
| char *table |
テーブル名 |
| char *def |
デフォルト値 |
| enum enum_field_types type |
フィールドタイプ |
| unsigned int length |
文字列長または範囲(数値の場合) |
| unsigned int max_length |
最大文字列長または最大範囲 |
| unsigned int flags |
? |
| unsigned int decimals |
小数点以下の桁数のフィールド |
|
|
|
| |
|
サンプル |
|
|
|
//かねやんMySQLAdminより
// CListViewのカラムへ設定するサンプル
// myDataはmysql_real_connectでオープン済み
int num_fields;
MYSQL_FIELD *fields;
MYSQL_RES *res;
LV_COLUMN listcol;
if(mysql_select_db(myData,"mysql") < 0)
return;
if((res=mysql_list_fields(myData,"host",NULL))==NULL)
return;
// すべてのフィールドを読むまで繰り返す
num_fields = mysql_num_fields(result);
fields = mysql_fetch_fields(result);
for(int i=0;i<num;i++){
listcol.pszText = fields[i].name;
//フィールド名
listcol.cx = 100;
listCtrl.InsertColumn(i,&listcol);
}
|
|