Posts

Showing posts from July, 2009

Расширение UNDO для СУБД SQLite

Недавно Simon Naunton анонсировал расширение для SQLite, реализующие функционал undo/redo. Описание принципа работы соответствующего функционала известно давно и может быть найдено на страничке http://www.sqlite.org/cvstrac/wiki?p=UndoRedo Модуль предоставляет возможность отменять один запрос или набор запросов и повторять их после отмены. Таким образом, программирование действий "Отменить" и "Повторить" в приложении существенно упрощается. Непосредственно реализация мне понравилась, хотя и содержала неекоторые странности - например, привязку к primary keys вместо использования rowid и проч. К счастью, автор быстро откликается на пожелания и предложения и уже подготовил новый релиз, список изменений можно посмотреть в файле ChangeLog архива исходного кода. Остается еще несколько вещей, которые мне сильно не нравятся. В том числе: - неявный вызов транзакции в функциях - требует переписывания существующих приложений без использования транзакций (sic!), - функция und

Новая книга по СУБД SQLite - "The SQL Guide to SQLite"

Название книги "The SQL Guide to SQLite", автор Rick F. van der Lans. Продается здесь (можно просмотреть оглавление): http://www.lulu.com/ Скоро появится в продаже и на Amazon. Самого издания у меня пока нет, но по той версии, что готовилась в печать, могу сказать, что читается легко, сложных английских оборотов и редко встречаемых слов я не заметил. Книга ориентирована непосредственно на пользователей, в т.ч. php-программистов. Если есть вопросы, можете обращаться ко мне, постараюсь ответить или уточню у автора. SQLite build with some extra modules you can get from my debian repository: deb http://mobigroup.ru/debian/ lenny main contrib non-free deb-src http://mobigroup.ru/debian/ lenny main contrib non-free Install repository keyring as sudo aptitude install debian-mobigroup-keyring Also you can get sources directly from http://mobigroup.ru/debian/pool/main/s/sqlite3/ The patch file for current SQLite release is http://mobigroup.ru/debian/pool/main/s/sqlite3/sqlite3_3.6.16

Счетчики в SQLite

Недавно ко мне обратился прикладной программист, работающий с моим фрэймворком для AOLServer и SQLite с вопросом, как ему сделать счетчик записей, возвращенных запросом. Разумеется, можно создать временную таблицу или забиндить тиклевскую функцию, но есть и более простой способ - использовать написанный мною модуль key или tempkey (отличаются только тем, что последний использует временную таблицу, таким образом, при хранении временных объектов в ОЗУ не требуется запись на диск). Модуль key создает при инициализации таблицу keys (а модуль tempkey - временную таблицу tempkeys), в которой и будут храниться все ключи; таким образом, можно использовать практически неограниченное количество ключей без ущерба для производительности и не нуждаясь в большом количестве ОЗУ. Рассмотрим на примере неименованного временного счетчика: create table colors(name text); insert into colors values ('Red'); insert into colors values ('Green'); insert into colors values ('Blue'); sel