602 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
MYSQL_RES *res;
MYSQL_FIELD *field;
MYSQL_ROW row;
char sep[256], *psep = sep;
char *is_num = 0;
char *err = 0;
unsigned int length = 1; /* anfangs "|" */
unsigned int off;
if (!(res = mysql_store_result(db)))
return mysql_error(db);
if (!(is_num = malloc(mysql_num_fields(res))))
{
err = "Kein Speicher mehr";
goto err;
}
/* set up */
*psep++ = ’+’;
while ((field = mysql_fetch_field(res)))
{
unsigned int len = strlen(field->name);
if (len < field->max_length)
len = field->max_length;
if (len < 2 && !IS_NOT_NULL(field->flags))
len = 2; /* \N */
field->max_length = len + 1; /* die API verbiegen ... */
len += 2; length += len + 1; /* " " davor, " |" danach */
if (length >= 255)
{
err = "Zeile zu lang";
goto err;
}
memset(psep, ’-’, len); psep += len;
*psep++ = ’+’;
*psep = ’\0’;
}
/* Spalten¨uberschriften */
puts(sep);
mysql_field_seek(res,0);
fputc(’|’,stdout);
f¨ur (off=0; (field = mysql_fetch_field(res)) ; off++)
{
printf(" %-*s|",field->max_length, field->name);
is_num[off]= IS_NUM(field->type);
Comentarios a estos manuales