1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
#include <grass/dbmi.h>
#include "odbc.h"
#include "globals.h"
#include "proto.h"
int db__driver_create_table(dbTable *table)
{
dbString sql;
cursor *c;
SQLCHAR msg[OD_MSG];
SQLRETURN ret;
SQLINTEGER err;
G_debug(3, "db__driver_create_table()");
db_init_string(&sql);
db_table_to_sql(table, &sql);
G_debug(3, " SQL: %s", db_get_string(&sql));
c = alloc_cursor();
if (c == NULL)
return DB_FAILED;
ret = SQLExecDirect(c->stmt, (SQLCHAR *)db_get_string(&sql), SQL_NTS);
if ((ret != SQL_SUCCESS) && (ret != SQL_SUCCESS_WITH_INFO)) {
SQLGetDiagRec(SQL_HANDLE_STMT, c->stmt, 1, NULL, &err, msg, sizeof(msg),
NULL);
db_d_append_error("SQLExecDirect():\n%s\n%s (%d)\n",
db_get_string(&sql), msg, (int)err);
db_d_report_error();
return DB_FAILED;
}
free_cursor(c);
return DB_OK;
}
|