程序例程被称为序列错误

时间:2012-09-13 10:08:47

标签: c sqlite

为什么我不能插入我的数据库?我已经读过关于这个错误的多个线程,他们所有的问题都是他们忘记了为数据库打开调用。帮助

sqlite3 *data;
sqlite3_stmt *res;
char *errMSG;
int sql=0;
const char *tail;
char insert[100];

sql = sqlite3_open("pokemon.db", &data);
if(sql){
    puts("Can't open database");
    exit(0);
}

sprintf(insert, "Insert into Players values('%s','%s',1, 0,%d,%d,%d,0,0,'%s');", name, species, HP, ATTK, DEF, key);

sql = sqlite3_prepare_v2(data, insert, 1000, &res, &tail);
printf("%d\n",sql);
sqlite3_step(res);
sqlite3_finalize(res);
sqlite3_close(data);

printf("You have successfully captured a new Pokemon!<br>");
printf("%s", sqlite3_errmsg(data));
printf("<form action=start.cgi><input type=submit value='Go back to Home Page!'></form>");


printf("</body></html>");
return 0;

1 个答案:

答案 0 :(得分:0)

在致电sqlite3_errmsg(data)时,数据库连接data已经关闭。

我怀疑这是无效的 - 并且对sqlite3_errmsg()的无效调用是错误字符串引用的内容,而不是之前的任何错误。