50c8724322
file exists system predicate $source_file -> $user source hide and make system preds fix check_head_and_body user_expansion never fails goal expansion is controlled b dynamic procedure add must_be_of_type predicate_indicator fix neat_call, debug flag is user controlled use simplecudd, not ptoblogbdd compile all of myddas fx junk in file_name fix warnings use common file opening struct and funds avoid pairs module fix db queues
90 lines
2.1 KiB
C
90 lines
2.1 KiB
C
/*************************************************************************
|
|
* *
|
|
* YAP Prolog *
|
|
* *
|
|
* Yap Prolog was developed at NCCUP - Universidade do Porto *
|
|
* *
|
|
* Copyright L.Damas, V.S.Costa and Universidade do Porto 1985-1997 *
|
|
* *
|
|
**************************************************************************
|
|
* *
|
|
* File: myddas_mysql.c *
|
|
* Last rev: 22/03/05 *
|
|
* mods: *
|
|
* comments: Predicates for comunicating with a mysql database system *
|
|
* *
|
|
*************************************************************************/
|
|
|
|
#include "Yap.h"
|
|
#include <string.h>
|
|
#include <stdlib.h>
|
|
#include <mysql.h>
|
|
#include <myddas_util.h>
|
|
|
|
#ifdef MYDDAS_MYSQL
|
|
/* Auxilary function to table_write*/
|
|
static void n_print(Int, char);
|
|
#endif
|
|
|
|
/* Auxilary function to table_write*/
|
|
static void n_print(Int n, char c) {
|
|
for (; n > 0; n--)
|
|
printf("%c", c);
|
|
}
|
|
|
|
void myddas_util_table_write(MYSQL_RES *res_set) {
|
|
|
|
MYSQL_ROW row;
|
|
MYSQL_FIELD *fields;
|
|
Int i, f;
|
|
|
|
if (mysql_num_rows(res_set) == 0) {
|
|
printf("Empty Set\n");
|
|
return;
|
|
}
|
|
|
|
f = mysql_num_fields(res_set);
|
|
|
|
fields = mysql_fetch_field(res_set);
|
|
for (i = 0; i < f; i++) {
|
|
printf("+");
|
|
if (strlen(fields[i].name) > fields[i].max_length)
|
|
fields[i].max_length = strlen(fields[i].name);
|
|
n_print(fields[i].max_length + 2, '-');
|
|
}
|
|
printf("+\n");
|
|
|
|
for (i = 0; i < f; i++) {
|
|
printf("|");
|
|
printf(" %s ", fields[i].name);
|
|
n_print(fields[i].max_length - strlen(fields[i].name), ' ');
|
|
}
|
|
printf("|\n");
|
|
|
|
for (i = 0; i < f; i++) {
|
|
printf("+");
|
|
n_print(fields[i].max_length + 2, '-');
|
|
}
|
|
printf("+\n");
|
|
|
|
while ((row = mysql_fetch_row(res_set)) != NULL) {
|
|
for (i = 0; i < f; i++) {
|
|
printf("|");
|
|
if (row[i] != NULL) {
|
|
printf(" %s ", row[i]);
|
|
n_print(fields[i].max_length - strlen(row[i]), ' ');
|
|
} else {
|
|
printf(" NULL ");
|
|
n_print(fields[i].max_length - 4, ' ');
|
|
}
|
|
}
|
|
printf("|\n");
|
|
}
|
|
|
|
for (i = 0; i < f; i++) {
|
|
printf("+");
|
|
n_print(fields[i].max_length + 2, '-');
|
|
}
|
|
printf("+\n");
|
|
}
|