вторник, 24 февраля 2009 г.

Создание базы данных контактов в OpenOffice

Виртуальная энциклопедия "Linux по-русски": новости, статьи, ссылки на материалы по операционной системе GNU/Linux.

Оригинал: Creating a Contacts Database in OpenOffice
Автор: Carla Schroder
Дата: 20 марта 2008
Перевод: Г.Лазов
Дата перевода: 18 февраля 2009

Управление контактами

В предыдущей статье мы научились создавать страницы с этикетками, визитками и стандартными письмами, используя OpenOffice Writer и Base. Этапы создания в OpenOffice любого документа для почтовой рассылки довольно просты, но одним из подводных камней может оказаться создание БД ваших контактов. Ваш список контактов должен находиться в Base, и с этим могут быть проблемы. Хорошая новость в том, что Base может импортировать данные из других БД, электронных таблиц, текстовых файлов с разделителями и адресных книг e-mail. На рисунке 1 показано окно импорта. В вашем случае содержимое окна может быть немного другим, в зависимости от того, какой дистрибутив Linux вы используете.

Рисунок 1: Окно импорта
Рисунок 1: Окно импорта

Base может подключаться напрямую к большинству реляционных БД, таких как MySQL, PostgreSQL, Oracle, Adabas D и любых других БД, которые поддерживают драйвера ODBC (Open Database Connectivity, открытая связь с базами данных) и JDBC (Java database connectivity, связь с базами данных Java). Таким образом, Base также функционирует как графический интерфейс к другим БД, т.е. вы можете использовать этот компонент для их редактирования. Адресные книги, электронные таблицы и текстовые файлы при этом доступны только для чтения. Вы можете импортировать данные из них в Base, но если вы измените исходный документ, то вам придется вручную импортировать новые данные; вы не можете изменить их или получить прямой доступ из Base.

Мои контакты находятся в адресной книге KDE. Импортировать их в Base настолько легко, что даже ваша кошка с этим справится!

  • Файл -> Создать -> Базу данных
  • Подключиться к существующей базе данных
  • Да, зарегистрировать базу данных и Открыть базу для редактирования
  • Жмем Готово, вводим имя и сохраняем новый файл.
  • Вы увидите что-то вроде Рисунка 2. Дважды щелкните на Адресная книга, чтобы увидеть импортированные данные.
Рисунок 2: База данных адресной книги
Рисунок 2: База данных адресной книги

Если Base не может напрямую импортировать данные из вашей адресной книги, попробуйте экспортировать адреса в .csv файл (файл данных с разделителями в виде запятых). Затем в выпадающем списке "Подключиться к существующей базе данных", выберите "Текст". Следующее окно запросит путь к файлу. Не забудьте отметить "Файл, "значений разделенных запятой" (*.csv)" и затем выберите корректные разделители. Если .csv файл сформирован корректно, проблем с ним у Base не будет. Ниже представлен пример-отрывок из моей экспортированной адресной книги:

"Family Name","Given Name","Honorific Prefixes","Home Phone", "Home Fax","Home Address Street","Home Address City", "Home Address State","Home Address Zip Code" "Schroder","Carla","Ms.","","","5678 EndOfTheLineLane", "Red Cowtown","Oregon","54321" 

Хотя в примере присутствуют разрывы строк для удобства чтения, реальные разрывы есть только на тех концах строк, где нет запятых. Количество полей в строке определения полей (это первая строка файла) и в строках данных должно точно совпадать. В примере их (полей) девять. Все пустые поля обязательно должны содержать "" в виде заполнителя, а каждое поле отделяется запятой. Вы можете использовать в качестве разделителя запятую, пробел, табуляцию, двоеточие или точку с запятой.

Подключение к MySQL или PostgreSQL

Для подключения к MySQL или PostgreSQL (или другим внешним базам данных) вам потребуются специальные драйвера. Если вы используете Debian (или *buntu, или Mepis, или любые другие системы этого семейства), то вам потребуется пакет unixODBC для поддержки ODBC, а также драйвер для вашей конкретной БД:

  • odbc-postgresql для PostgreSQL
  • libmyodbc для MySQL
  • libsqliteodbc для sqlite
  • mdbtools для MS Access
  • tdsodbc для Sybase SQL и MS SQL

Для PostgreSQL альтернативным вариантом является пакет openoffice.org-sdbc-postgresql, который заменяет как ODBC, так и JDBC драйвера.

Также вы можете использовать следующие JDBC драйвера:

  • openoffice.org-sdbc-postgresql
  • libpg-java для PostgreSQL
  • libmysql-java для MySQL

Fedora использует другие пакеты, и их не так много, как для Debian:

  • unixODBC.i386
  • postgresql-odbc.i386
  • mysql-connector-odbc.i386
  • postgresql-jdbc.i386
  • mysql-connector-java.i386

Любые драйвера, которые отсутствуют в вашем дистрибутиве, вы можете скачать с OpenOffice.org (см. источники) или у разработчика вашей БД. В чем же разница между ODBC и JDBC драйверами? Они немного отличаются по скорости и функциональности. К тому же, JDBC драйвера являются кроссплатформенными, хотя я не думаю, что это важно для кого-то кроме разработчиков. Если у вас есть проблемы с подключением к внешним БД через Base, экспортируйте нужные вам данные в .csv файл, и уже его импортируйте в Base. Base обожает правильно сформированные файлы с разделителями, а их создание - не проблема даже для новичков в работе с БД.

Создание базы данных с нуля

Создание новой БД контактов с нуля - не такая уж плохая идея! Как обычно, самое скучное и нудное - ввод самих данных. Открываем Файл -> Создать -> Базу данных -> Создать новую базу данных -> Да, зарегистрировать базу данных и Открыть базу для редактирования. В Base встроен очень неплохой мастер: щелкните по иконке Таблицы и выберите Использовать мастер для создания таблицы. Он содержит набор шаблонов для множества различных типов баз данных, включая Контакты (смотрите Рисунок 3). Обратите внимание на кнопки со стрелочками вверх/вниз - они используются для упорядочивания полей по вашему усмотрению.

Рисунок 3: Создание базы данных
Рисунок 3: Создание базы данных

Если вам захочется навести порядок и почистить место, идем сюда - Сервис -> Параметры -> База данных OpenOffice.org -> Базы данных - и удаляем любые базы данных, от которых хочется избавиться. Заметьте, что их нельзя удалить обычными методами, вроде использования файлового менеджера или команды rm, потому что Base регистрирует каждую свою БД. И чтобы удалить базу, нужно сначала отменить эту регистрацию.

Источники


Carla Schroder - автор книг "Linux Cookbook" и недавно вышедшей "Linux Networking Cookbook". Она регулярно публикует свои статьи на сайте LinuxPlanet.

Комментариев нет: