как использовать классы tntdb для обновления строковых значений в базе данных Sqlite

Привет я получаю проблему при использовании классов tntdb в моем коде C ++ только целочисленные значения обновляются в базе данных, в то время как строковые значения обновляются как мусорные значения Я даю свой код ниже, пожалуйста, помогите мне решить эту проблему

#include <tntdb/connection.h>
#include <tntdb/connect.h>
#include <stdio.h>
#include <string>
#include <sys/shm.h>

using namespace std;

int main()
{
string s="create table test2(T1 int not null primary key,NAME varchar(20),STATUS    varchar(20));";
try{
tntdb::Connection conn;
conn = tntdb::connect("sqlite:/home/gaian/Desktop/test.db");
string k="abc";
conn.execute(s);
tntdb::Statement st = conn.prepare("insert into test2(T1,NAME,STATUS) values (:T1, :NAME,:STATUS)");
st.set("T1",10)
.set("NAME",k)
.set("STATUS","bye")
.execute();
}

catch(const std::exception& e){
printf("error is %s\n",e.what());
}
return 0;
}

2

Решение

Я запускаю ваш код, и он отлично работает на моей платформе.

Чтобы избежать неявного приведения, вы можете использовать setString вместо set, то есть:

st.set("T1",10)
.setString("NAME",k)
.setString("STATUS","bye")
.execute();
1

Другие решения


По вопросам рекламы [email protected]