![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
Если это еще не присоединено к объекту сессии, переданному как первый
аргумент, эта функция прилагает таблицу zTbl таким же образом, как функция
sqlite3session_attach().
Если zTbl не существует или если у нее нет первичного ключа, эта функция не
делает (но не возвращает ошибку). zFromDb должно быть название базы данных ("main", "temp", ...)
приложенной к тому же самому дескриптору базы данных как объект сессии,
который содержит таблицу, совместимую с таблицей, приложенной к сессии этой
функцией. Таблицу считают совместимой, если: Если таблицы не совместимы, SQLITE_SCHEMA возвращен.
Если таблицы совместимы, но не имеют никаких колонок PRIMARY KEY, это не
ошибка, но никакие изменения не добавляются к объекту сессии.
Как с другой сессией API, просто проигнорированы таблицы без PRIMARY KEY. Эта функция добавляет ряд изменений объекта сессии, который мог
использоваться, чтобы обновить таблицу
в базе данных zFrom (назовите это "from-table")
так, чтобы ее содержание совпало с таблицей, приложенной
к объекту сессии (назовите это "to-table"): Если эта функция вызвана и затем changeset построен с использованием
sqlite3session_changeset(),
то после применения этого changeset к базе данных zFrom содержание двух
совместимых таблиц будет идентичным. Это ошибка, если база данных zFrom не существует или не содержит
необходимую совместимую таблицу. Если операция успешна, SQLITE_OK возвращен. Иначе вернется код ошибки
SQLite. В этом случае, если аргументом pzErrMsg не является NULL, *pzErrMsg
может указать на буфер, содержащий английское языковое сообщение об ошибке.
Обязанность вызывающего освободить этот буфер, используя sqlite3_free().
Choose any three.
Session Module C Interface
Загрузите различие между таблицами в сессию
int sqlite3session_diff(sqlite3_session *pSession, const char *zFromDb,
const char *zTbl, char **pzErrMsg);