RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

Small. Fast. Reliable.
Choose any three.

SQLite C Interface

Данные клиента соединения с базой данных

void *sqlite3_get_clientdata(sqlite3*,const char*);
int sqlite3_set_clientdata(sqlite3*, const char*, void*, void(*)(void*));

Эти функции используются, чтобы связать один или несколько названных указателей с соединением с базой данных. Вызов sqlite3_set_clientdata(D,N,P,X) заставляет указатель P быть присоединенным к соединению с базой данных D, используя имя N. Вызов sqlite3_get_clientdata(D,N) возвратит копию указателя P или NULL, если не было никаких предшествующих вызовов sqlite3_set_clientdata() с теми же самыми значениями D и N. Имена сравнены, используя strcmp() и таким образом чувствительны к регистру.

Если P и X оба не NULL, деструктор X вызван с аргументом P в следующих случаях:

  • Ошибка out-of-memory происходит во время sqlite3_set_clientdata(), который пытается зарегистрировать указатель P.
  • Вызов sqlite3_set_clientdata(D,N,P,X) сделан с темм же самыми параметрами D и N.
  • Завершение соединения с базой данных. SQLite не делает гарантий порядка, в котором деструктор вызывают, только то, что все деструктора вызовут точно однажды в какой-то момент во время процесса закрытия соединения с базой данных.

SQLite не делает, что-либо с данными клиента кроме вызова деструктора на данных клиента в подходящее время. Надлежащее использование для данных клиента должно обеспечить механизм для библиотек-оболочек, чтобы хранить дополнительную информацию о соединении с базой данных SQLite.

Нет никакого предела (кроме доступной памяти) числа различных указателей данных клиента (с различными именами), который может быть присоединен к связи единой базы данных. Однако внедрение оптимизировано для случая наличия только одного или двух различных имен данных клиента.

Нет никакого метода перечислить указатели данных клиента, связанные с соединением с базой данных. Параметр N может считаться секретным ключом, таким образом, только знающие его в состоянии получить доступ к связанным данным.

Предупреждение системы безопасности: Эти интерфейсы не должны быть выставлены на языках сценариев или при других обстоятельствах, где для нападающего могло бы быть возможно вызвать их. Любой агент, который может вызвать эти интерфейсы, может, вероятно, также взять под свой контроль процесс.

Данные клиента соединения с базой данных доступны только для версии SQLite version 3.44.0 (2023-11-01) и позже.

См. также: sqlite3_set_auxdata() и sqlite3_get_auxdata().