4
我尝试保存sqlite3_bind_blob中的simpel结构(vector3),但我不知道这是如何工作的。如果我调试此代码,控制台窗口崩溃。我该如何解决这个问题?我怎样才能保存在SQLITE C++结构
struct vector3
{
int X;
int Y;
int Z;
};
int main()
{
sqlite3 *db = NULL;
sqlite3_stmt *res = NULL;
sqlite3_open_v2("SaveGame1.sav", &db, SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE, NULL);
string query = "CREATE TABLE IF NOT EXISTS TestPlayer (vector BLOB)";
sqlite3_prepare_v2 (db, query.c_str(), query.length(), &res, 0);
sqlite3_step(res);
// Try to add mij struct
vector3 MyLocation;
MyLocation.X = 100;
MyLocation.Y = 100;
MyLocation.Z = 100;
query = "INSERT INTO TestPlayer (location) VALUES (?);";
sqlite3_prepare_v2 (db, query.c_str(), query.length(), &res, 0);
sqlite3_bind_blob (res, 1, &MyLocation, sizeof(vector3), SQLITE_TRANSIENT);
sqlite3_step(res);
query = "SELECT * FROM TestPlayer;";
sqlite3_prepare_v2 (db, query.c_str(), query.length(), &res, 0);
sqlite3_step(res);
const vector3 *GetLoc = (const vector3 *) sqlite3_column_blob(res, 0);
cout << GetLoc->X << endl;
sqlite3_finalize(res);
sqlite3_close(db);
return 0;
}
如果这就是您的所有代码,那就错了。在访问结果之前,您需要查询数据库。如果这不是你的全部代码,那么你需要向我们展示更多,所以我们可以看到你真的在做什么。 – 2011-12-18 21:50:20
请仔细阅读您的新代码。你没有按照正确的顺序做事。 – 2011-12-18 22:04:41
你可以给我一个提示,我不再看到它 – ErrorX 2011-12-18 22:30:49