Программирование на языке Ruby
Шрифт:
В любом случае метод
В блоке допустимы любые операции. Это означает, например, что можно формулировать запрос с помощью регулярных выражений (в отличие от типичной SQL-базы).
Результирующий набор, возвращаемый KirbyBase, можно сортировать по нескольким ключам в порядке возрастания или убывания. Для сортировки по убыванию перед именем ключа ставится минус. (Это работает, потому что в класс
У результирующего набора есть одно интересное свойство: он может предоставлять массивы, «срезающие» результат. С первого раза это довольно трудно понять.
Предположим, что есть результирующий набор записей, представляющих людей, и в каждой записи хранятся имя, возраст, рост и вес. Понятно, что этот результирующий набор можно индексировать как массив, но одновременно он имеет методы, названные так же, как поля. Каждый такой метод возвращает массив значений только соответствующего ему поля. Например:
В KirbyBase есть ограниченные средства печати отчетов; достаточно вызвать метод
Атрибут таблицы
Поскольку удаленный доступ — интересное средство, уделим ему немного внимания. Вот пример сервера:
Это прямое применение интерфейса dRuby (см. главу 20). На стороне клиента следует при подключении к базе данных задать символ
Можно также выполнять обычные операции: обновлять и удалять записи, удалять таблицы и т.д. Есть и более сложные механизмы, о которых я не буду рассказывать подробно: связи один-ко-многим, вычисляемые поля и нестандартные классы записей. Подробнее см. документацию по KirbyBase на сайте RubyForge.
10.4. Подключение к внешним базам данных
Благодаря усилиям многих людей Ruby может взаимодействовать с разными базами данных, от монолитных систем типа Oracle до более скромного MySQL. Для полноты описания мы включили в него также текстовые файлы в формате CSV.
Уровень функциональности, реализованный в этих пакетах, постоянно изменяется. Обязательно познакомьтесь с последней версией документации в сети. Неплохой отправной точкой станет архив приложений Ruby.
10.4.1. Интерфейс с SQLite
SQLite — популярная база данных для тех, кто ценит программное обеспечение, которое не нужно конфигурировать. Это небольшая автономная исполняемая программа, написанная на языке С, которая хранит всю базу данных в одном файле. Хотя обычно она используется для небольших баз, но теоретически способна управиться с терабайтными объемами.
Привязка Ruby к SQLite довольно прямолинейна. API, написанный на С, обернут в класс
В большинстве ситуаций вам будет достаточно класса
Бездна
102. Книга-загадка, книга-бестселлер
Детективы:
триллеры
рейтинг книги
Сравнительные жизнеописания
Документальная литература:
биографии и мемуары
рейтинг книги
Я еще барон. Книга III
3. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
рейтинг книги
Том 10. Господа «ташкентцы». Дневник провинциала
10. Собрание сочинений в двадцати томах
Проза:
русская классическая проза
рейтинг книги
Последний Паладин. Том 6
6. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
рейтинг книги
Газлайтер. Том 21
21. История Телепата
Фантастика:
боевая фантастика
аниме
попаданцы
рейтинг книги
Посланник
2. Страж
Фантастика:
научная фантастика
космическая фантастика
рейтинг книги