Как выполнить обновление SQL с несколькими именованными параметрами - PullRequest
0 голосов
/ 15 марта 2020

Я пытаюсь обновить значения таблицы БД 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...