Программирование на языке Ruby
Программирование на языке Ruby читать книгу онлайн
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
ages = list.age # Массив: возрасты всех людей.names = list.name # Массив: имена всех людей.В KirbyBase есть ограниченные средства печати отчетов; достаточно вызвать метод
to_reportrpt = books.select.sort(:title).to_reportputs rpt# Выводится:# recno | title | author# -----------------------------------------------------------# 2 | Democracy in America | Alexis de Tocqueville# 1 | The Case for Mars | Robert Zubrin# 3 | The Ruby Way | Hal FultonАтрибут таблицы
encrypttruedb.create_table(:mytable, f1, :String, f2, :Date) {|t| t.encrypt = true }Поскольку удаленный доступ — интересное средство, уделим ему немного внимания. Вот пример сервера:
require 'kirbybase'require 'drb'host = 'localhost'port = 44444db = KirbyBase.new(:server) # Создать экземпляр базы данных.DRb.start_service("druby://#{host} :#{port)", db)DRb.thread.joinЭто прямое применение интерфейса dRuby (см. главу 20). На стороне клиента следует при подключении к базе данных задать символ
:client:localdb = KirbyBase.new(:client,'localhost',44444)# Весь остальной код не изменяется.Можно также выполнять обычные операции: обновлять и удалять записи, удалять таблицы и т.д. Есть и более сложные механизмы, о которых я не буду рассказывать подробно: связи один-ко-многим, вычисляемые поля и нестандартные классы записей. Подробнее см. документацию по KirbyBase на сайте RubyForge.
10.4. Подключение к внешним базам данных
Благодаря усилиям многих людей Ruby может взаимодействовать с разными базами данных, от монолитных систем типа Oracle до более скромного MySQL. Для полноты описания мы включили в него также текстовые файлы в формате CSV.
Уровень функциональности, реализованный в этих пакетах, постоянно изменяется. Обязательно познакомьтесь с последней версией документации в сети. Неплохой отправной точкой станет архив приложений Ruby.
10.4.1. Интерфейс с SQLite
SQLite — популярная база данных для тех, кто ценит программное обеспечение, которое не нужно конфигурировать. Это небольшая автономная исполняемая программа, написанная на языке С, которая хранит всю базу данных в одном файле. Хотя обычно она используется для небольших баз, но теоретически способна управиться с терабайтными объемами.
Привязка Ruby к SQLite довольно прямолинейна. API, написанный на С, обернут в класс
SQLite::APIВ большинстве ситуаций вам будет достаточно класса
SQLite::Databaserequire 'sqlite'db = SQLite::Database.new("library.db")db.execute("select title,author from books") do |row| p rowenddb.close# Выводится:# ["The Case for Mars", "Robert Zubrin"]# ["Democracy in America", "Alexis de Tocqueville"]# ...Если блок не задан, то метод
executeResultSetrs = db.execute("select title,author from books")rs.each {|row| p row } # Тот же результат, что и выше.rs.closeЕсли получен объект
ResultSetresetnexteof?rs = db.execute("select title,author from books")while ! rs.eof? rec = rs.next p rec # Тот же результат, что и выше.endrs.closeМетоды библиотеки могут возбуждать различные исключения. Все они являются подклассами класса
SQLite::ExceptionОтметим еще, что библиотека написана так, что может работать совместно с библиотекой
ArrayFieldssqlitearrayfieldsResultSetHashХотя библиотека
sqlite
