SQLite CREATE TABLE 和 INSERT 工作,但返回SQLITE_ERROR "no such table" C++
SQLite CREATE TABLE and INSERT work, but return SQLITE_ERROR "no such table" C++
所以这是我第一次在C++中尝试SQLite,我已经完成了所有工作,但它抛出了SQLite_ERROR-"没有这样的表:(表名)"错误。我不知道发生了什么——当我创建一个表时,它不应该抛出这些错误,对吧?我很清楚这个表不存在,这就是我创建它的原因…
处理程序对象有一个fn。如果表不存在,则创建模式:
result = handler->createSchema();
哪个调用:
bool SQLiteHandler::createSchema()
{
if(!isValid())
{
return false;
}
if(schemaExists())
{
return false;
}
//Create necessary table(s)
std::string query = "CREATE TABLE symbols (id INTEGER PRIMARY KEY AUTOINCREMENT, ticker, last_update, daily_data, minute_data, tick_data);";
dbConn->executeQuery(query);
if(dbConn->getStatus() == DatabaseConnector::DBC_SQL_ERROR)
{
return false;
}
return true;
}
哪个调用(executeQuery(query)):
void SQLiteDBConnector::executeQuery(const std::string Query)
{
if(!isConnected())
{
return;
}
//Execute Query
char* sqlError = 0;
int rc = sqlite3_exec(db, Query.c_str(), NULL, NULL, &sqlError);
if(rc != SQLITE_OK)
{
//Error
std::string err = "[SQLite Error]: ";
err += std::string(sqlError);
setStatus(DBC_SQL_ERROR, err);
}
sqlite3_free(sqlError);
}
有什么想法吗?
问题出在这里,与SQLite无关,只是我犯了一个愚蠢的错误。当出现错误时,我正在更新状态,但当某件事成功时,我没有更新,所以如果出现错误,它就会挂起。我不完全确定是什么触发了第一个错误,但通过更改这个:
if(rc != SQLITE_OK)
{
//Error
std::string err = "[SQLite Error]: ";
err += std::string(sqlError);
setStatus(DBC_SQL_ERROR, err);
}
类似的东西:
if(rc != SQLITE_OK)
{
//Error
std::string err = "[SQLite Error]: ";
err += std::string(sqlError);
setStatus(DBC_SQL_ERROR, err);
}
else
{
setStatus(DBC_CONNECTED);
}
它起作用了。我真是太愚蠢了:P
相关文章:
- "error: no matching function for call to"构造函数错误
- 在 Eclipse: "error: no match for 'operator='" 中获取错误消息
- C++ "error: no matching function"
- "error: no matching function for call to",我无法更改结构的定义
- QT "relocation error" / "no version information available"运行时错误
- 我的程序显示许多错误,"error: no matching function for call to 'getPercentScore'"
- "error: no matching function for call to ‘push_back(char [6])" .如何解决此代码中的错误?
- 如何修复从基类继承两次时"error: no matching function for call to"
- 提升::访客操作员过载的变体"Error: no match for call to [...]"
- 流行的(c ++)"error: no matching function for call to ... ",虽然踢了一脚
- "Error: no matching function for call to" C++
- 使用 std::string 时"error: no match for ‘operator<<"
- WSARecv 有时会返回与 IOCP 端口关联的套接字的"invalid handle (error no 6)"。(C++)
- 构造非初始化结构时的"error: no matching function for call to"
- 初始化标准::auto_ptr:"error: no match for call to ‘(std::auto_ptr<int>) (int*)’"
- C++, error no match for operator<<
- C++ 在集合中计数时"error: no matching function for call to"
- 将元素添加到遇到的结构数组C++"error no match for ‘operator=’"
- 配置:error: no boost.找到文件系统库
- error: no match for 'operator>>' in 'in &g