Я пытаюсь обновить значения таблицы БД SQLite, но пока что получаю синтаксические ошибки. Как показывает код ниже, мой подход пытается именовать параметры.
Что я не так делаю?
Спасибо всем заранее.
long myUpdatemyEntity(MyEntity *myEntity) {
sqlite3 *db = myDb();
if (!db)
return -1;
long myEntityGUID = myEntity->_myEntityGUID;
long remotemyEntityGUID = myEntity->_remotemyEntityGUID;
int rc;
char *szSQL;
sqlite3_stmt *stmt;
szSQL = "UPDATE MY_ENTITY_TABLE "
"SET REMOTE_ENTITY_GUID, RESOLVE_STATUS "
" values ("
"@remoteEntityGUID, "
"@entityResolveStatus "
")"
"WHERE ENTITY_GUID = @myEntityGUID;";
rc = sqlite3_prepare(db, szSQL, strlen(szSQL), &stmt, 0);
if (rc == SQLITE_OK) {
int myEntityGUID_idx = sqlite3_bind_parameter_index(stmt, "@myEntityGUID");
sqlite3_bind_int64(stmt, myEntityGUID_idx, myEntityGUID);
int remoteEntityGUID_idx = sqlite3_bind_parameter_index(stmt, "@remoteEntityGUID");
sqlite3_bind_int64(stmt, remoteEntityGUID_idx, remotemyEntityGUID);
int entityResolveStatus_idx = sqlite3_bind_parameter_index(stmt, "@entityResolveStatus");
sqlite3_bind_int64(stmt, entityResolveStatus_idx, entityResolveStatus);
}
if (rc != SQLITE_OK) {
fprintf(stderr, "SQL error: myUpdatemyEntity %s", sqlite3_errmsg(db));
} else {
sqlite3_step(stmt);
}
sqlite3_finalize(stmt);
sqlite3_close(db);
return myEntityGUID;
}