Библиотека сайта rus-linux.net
Создание базы данных контактов в OpenOffice
Оригинал: Creating a Contacts Database in OpenOfficeАвтор: Carla Schroder
Дата: 20 марта 2008
Перевод: Г.Лазов
Дата перевода: 18 февраля 2009
Управление контактами
В предыдущей статье мы научились создавать страницы с этикетками, визитками и стандартными письмами, используя OpenOffice Writer и Base. Этапы создания в OpenOffice любого документа для почтовой рассылки довольно просты, но одним из подводных камней может оказаться создание БД ваших контактов. Ваш список контактов должен находиться в Base, и с этим могут быть проблемы. Хорошая новость в том, что Base может импортировать данные из других БД, электронных таблиц, текстовых файлов с разделителями и адресных книг e-mail. На рисунке 1 показано окно импорта. В вашем случае содержимое окна может быть немного другим, в зависимости от того, какой дистрибутив Linux вы используете.
Рисунок 1: Окно импорта
Base может подключаться напрямую к большинству реляционных БД, таких как MySQL, PostgreSQL, Oracle, Adabas D и любых других БД, которые поддерживают драйвера ODBC (Open Database Connectivity, открытая связь с базами данных) и JDBC (Java database connectivity, связь с базами данных Java). Таким образом, Base также функционирует как графический интерфейс к другим БД, т.е. вы можете использовать этот компонент для их редактирования. Адресные книги, электронные таблицы и текстовые файлы при этом доступны только для чтения. Вы можете импортировать данные из них в Base, но если вы измените исходный документ, то вам придется вручную импортировать новые данные; вы не можете изменить их или получить прямой доступ из Base.
Мои контакты находятся в адресной книге KDE. Импортировать их в Base настолько легко, что даже ваша кошка с этим справится!
- Файл -> Создать -> Базу данных
- Подключиться к существующей базе данных
- Да, зарегистрировать базу данных и Открыть базу для редактирования
- Жмем Готово, вводим имя и сохраняем новый файл.
- Вы увидите что-то вроде Рисунка 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: Создание базы данных
Если вам захочется навести порядок и почистить место, идем сюда - Сервис -> Параметры -> База данных OpenOffice.org -> Базы данных
- и удаляем любые базы данных, от которых хочется избавиться. Заметьте, что их нельзя удалить обычными методами, вроде использования файлового менеджера или команды rm
, потому что Base регистрирует каждую свою БД. И чтобы удалить базу, нужно сначала отменить эту регистрацию.
Источники
Carla Schroder - автор книг "Linux Cookbook" и недавно вышедшей "Linux Networking Cookbook". Она регулярно публикует свои статьи на сайте LinuxPlanet.