![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
Эти функции используются, чтобы связать
один или несколько названных указателей с
соединением с базой данных.
Вызов 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 в следующих случаях:
SQLite не делает, что-либо с данными клиента кроме вызова
деструктора на данных клиента в подходящее время.
Надлежащее использование для данных клиента должно обеспечить механизм для
библиотек-оболочек, чтобы хранить дополнительную информацию о соединении с
базой данных SQLite. Нет никакого предела (кроме доступной памяти) числа
различных указателей данных клиента (с различными именами), который может
быть присоединен к связи единой базы данных. Однако внедрение оптимизировано
для случая наличия только одного или двух различных имен данных клиента. Нет никакого метода перечислить указатели данных клиента, связанные с
соединением с базой данных. Параметр N может считаться секретным ключом,
таким образом, только знающие его в состоянии получить
доступ к связанным данным. Предупреждение системы безопасности: Эти интерфейсы не должны быть
выставлены на языках сценариев или при других обстоятельствах, где для
нападающего могло бы быть возможно вызвать их.
Любой агент, который может вызвать эти интерфейсы, может, вероятно,
также взять под свой контроль процесс. Данные клиента соединения с базой данных доступны только для версии
SQLite version 3.44.0 (2023-11-01) и позже. См. также: sqlite3_set_auxdata() и
sqlite3_get_auxdata().
Choose any three.
SQLite C Interface
Данные клиента соединения с базой данных
void *sqlite3_get_clientdata(sqlite3*,const char*);
int sqlite3_set_clientdata(sqlite3*, const char*, void*, void(*)(void*));