C++ 代码中的sqlite3错误
我想在我的c++代码中使用SQLite,所以我包括了SQLite3。在外部*.exe中使用以下代码时,它可以正常工作:C++ 代码中的sqlite3错误,c++,sqlite,C++,Sqlite,我想在我的c++代码中使用SQLite,所以我包括了SQLite3。在外部*.exe中使用以下代码时,它可以正常工作: void create_Database(char * file_name) { std::ofstream debug("C:\\Users\\Roland-User\\Desktop\\Debug.txt"); //const std::string&filename = file_name; std::string filename = "
void create_Database(char * file_name)
{
std::ofstream debug("C:\\Users\\Roland-User\\Desktop\\Debug.txt");
//const std::string&filename = file_name;
std::string filename = "C:\\Users\\Roland-User\\Desktop\\data";
std::string appendix = ".database";
std::string file = filename + appendix;
debug << "Creating database\n";
sqlite3 *db;
char *zErrMsg = 0;
int rc;
char * sql;
rc = sqlite3_open(file.c_str(), &db);
if(rc)
exit(-1);
sql = "CREATE TABLE DATABASE(HEADERDATA INT, WAVENUMBER INT, POSX INT, POSY INT, COUNT INT);";
rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);
if(rc == 1)
{
sql = "DROP DATABASE DATABASE;";
rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);
sqlite3_free(zErrMsg);
sql = "DROP TABLE DATABASE;";
rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);
sqlite3_free(zErrMsg);
debug << "Having to drop database!\n";
};
sql = "CREATE TABLE DATABASE(HEADERDATA INT, WAVENUMBER INT, POSX INT, POSY INT, COUNT INT);";
rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);
if(rc!=SQLITE_OK)
{
debug << "Still there are errors, I am confused!\n";
debug << "With error codes: " << rc << '\n';
sqlite3_free(zErrMsg);
exit(-1);
};
debug << "Finished with creating database\n";
debug.close();
sqlite3_close(db);
};
void创建数据库(char*文件名)
{
std::ofstream debug(“C:\\Users\\Roland User\\Desktop\\debug.txt”);
//const std::string&filename=文件名;
std::string filename=“C:\\Users\\Roland User\\Desktop\\data”;
std::string appendix=“.database”;
std::string file=文件名+附录;
调试为什么忽略错误消息?这是什么意思?好吧,这个错误代码告诉我没有数据库或者有SQL错误。但是我刚刚创建了一个数据库,所以应该有一个。我怎么才能找到SQL错误呢?我是说zErrMsg
。阅读。@CL:好的,这给了我更好的错误反馈,谢谢你的回复我记得我!