#include <iostream>
#include <stdlib.h>
#include <sstream>
#include "sqlite3.h"
#include <stdio.h>
const char dbName[] = {"/trial.sqlite"};
std::string quoteSql( std::string &s );
int main(){
std::string szSQL;
std::string tableName;
tableName = "Nodes";
int result;
const char *pzTest;
sqlite3_stmt *statement;
sqlite3 *db;
std::string nodename;
int count;
nodename = "KMLB1";
szSQL = "SELECT COUNT(*) FROM Nodes WHERE NODENAME = ?";
result = sqlite3_open(dbName,&db);
if(result){
sqlite3_close(db);
return 0;
}
result = sqlite3_prepare_v2(db,szSQL.c_str(),strlen(szSQL.c_str()),&statement,&pzTest);
if(result){
sqlite3_close(db);
return 0;
}
sqlite3_bind_text(statement,1,nodename.c_str(),-1,0);
result = sqlite3_step(statement);
if(result){
sqlite3_close(db);
return 0;
}
count = sqlite3_column_int(statement, 0);
if(count == 0){
sqlite3_close(db);
return 0;
}
sqlite3_finalize(statement);
sqlite3_close(db);
return 0;
}
std::string quoteSql( std::string &s ) {
return std::string("'") + s + std::string("'");
}
我在上面编写了一个实验性和基本的 C++ SQLite 控制台应用程序。编译阶段没有问题,但我在 sqlite_prepare_v2() 函数的行上得到 SQLITE_ERROR 状态代码。我什至无法找到问题的原因。
此外,我想知道,如果我可以通过此代码获得 NODENAME 为 KMLB1 的行数。