#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 である行数を取得できるかどうかを知りたいです。