7 OpenOffice.org 1.0, ODBC и MySQL

Access для Linux

Появление OpenOffice.org 1.0 в 2002 году устранило одну из главных проблем распространения Linux на конторских машинах. Наконец-то пользователи Linux получили нормальное конторское программное обеспечение: текстовый процессор, электронную таблицу, графику, которое не только работает по крайней мере также как эквиваленты из Microsoft Office, но может также работать с форматами данных из Microsoft Office и имеет открытые исходные тексты. Однако, это не предотвратило возражения пользователей пакетов Microsoft, что они все еще не могут перейти на Linux, поскольку "Linux не имеет аналога Microsoft Access". Ну да, не имеет! Еще как имеет. Один из скрытых нюансов OpenOffice.org 1.0 то, что он также имеет интерфейс для баз данных. Все, что Вы должны сделать, это подключиться к любой базе данных под Linux, а их уже написано немало. Этот документ объясняет, как сделать это соединение, а затем обеспечивает краткий просмотр инструментальных средств баз данных внутри OpenOffice.org 1.0. Многие пользователи не придают значения скрытым возможностям, порой даже не знают о них, и бывают поражены ими.

Параметры программного обеспечения

OpenOffice.org 1.0 использует ODBC 1 для связи с базами данных. Здесь рассказано о том, как подключить OpenOffice.org 1.0 к MySQL через unixODBC, но нет ограничений на то, какую именно СУБД использовать, лишь бы она имела драйвер для ODBC. Поскольку задачей было все настроить под RedHat Linux 9, все примеры показывают установку из пакетов RPM. Если Вы используете другой формат или дистрибутив, общие принципы остаются теми же.

Замечания для пользователей MS Windows

Следующий раздел этого документа применяется только к OpenOffice.org 1.0 под Linux. Можно (и довольно просто) установить OpenOffice.org 1.0, MySQL и MyODBC под MS Windows. Если Вы используете MS Windows, переходите к разделу "Использование инструментов Data Source Tools в OpenOffice.org 1.0".

Подсоединение OpenOffice.org 1.0 к MySQL через ODBC

Установка MySQL

Проверьте сначала, установлен ли MySQL на Вашей системе. Из меню RedHat:

System Settings

Add/Remove Applications

Выберите "Select SQL Database Server", щелкните на Details и удостоверьтесь, что MySQL выбран.

Вы должны гарантировать, что сервер базы данных MySQL пребывает в готовности и выполняется. Из меню RedHat выберите:

System Settings

Server Settings

Services

Удостоверьтесь, что сервис mysqld service запущен.

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

Тестирование MySQL

Теперь, когда сервер выполняется, и Вы имеете установленное клиентское программное обеспечение, Вы должны проверить как все это работает. Вы можете обратиться к серверу из оболочки пользователя. Здесь я войду в систему как pautov, но с сервером соединюсь как MySQL-пользователь test. Я дам команду select version(); для проверки работоспособности: [pautovv@joker pautovv]$ mysql -u test Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 to server version: 3.23.54 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> select version(); +-----------+ | version() | +-----------+ | 3.23.54 | +-----------+ 1 row in set (0.27 sec) mysql> exit Bye [pautovv@joker pautovv]$

Установка unixODBC

Вы должны также убедиться, что программное обеспечение unixODBC было установлено. К сожалению, RedHat не ставит драйверы MyODBC, которые соединяют unixODBC с MySQL, и единственый способ установить их: командная строка. Однако, драйверы MyODBC включены в Disk 2, так что их установка проста: # rpm -ivh /mnt/cdrom/RedHat/RPMS/MyODBC-2.50.39-11.i386.rpm warning: /mnt/cdrom/RedHat/RPMS/MyODBC-2.50.39-11.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e Preparing... ########################################### [100%] 1:MyODBC ########################################### [100%] [root@joker root]#

Создание .ini-файлов для ODBC

Теперь Вы должны установить .ini-файлы, используемые ODBC. Они представляют собой простые текстовые файлы, которые Вы можете редактировать используя Ваш любимый текстовый редактор. RedHat помещает шаблоны в /etc.

odbcinst.ini перечисляет ODBC-драйверы, установленные в системе. Вы должны определить только MySQL-драйвер в /etc/odbcinst.ini: [MySQL] Description = ODBC for MySQL Driver = /usr/lib/libmyodbc.so FileUsage = 1

odbc.ini определяет связи, которые пользователи используют, чтобы работать с фактической базой данных через драйвер. Связи в /etc/odbc.ini доступны всем пользователям Вашей Linux-системы: [MySQL-test] Description = MySQL database test Driver = MySQL Server = localhost Database = test Port = 3306

Тестирование ODBC

Теперь проверим как работает соединение, на сей раз через ODBC. В пакет unixODBC входит простое средство isql: [[pautovv@joker pautovv]$ isql MySQL-test test +---------------------------------------+ | Connected! | | sql-statement | | help [tablename] | | quit | +---------------------------------------+ SQL> select version() +----------+ | version()| +----------+ | 3.23.54 | +----------+ 1 rows affected 1 rows returned SQL> quit [pautovv@joker pautovv]$

Если это не работает, попробуйте isql MySQL-test -v, чтобы получить более полные сообщения об ошибках.

Заметьте, что параметр, который Вы передаете isql (MySQL-test) передается программному обеспечению ODBC. Оно ищет этот параметр в odbc.ini и находит драйвер MySQL и информацию для связи. Оно затем ищет MySQL в odbcinst.ini и находит библиотеки.

Если все это работает, Вы теперь можете спокойно работать с базой данных MySQL, доступной из ODBC.

Установка ODBC внутри OpenOffice.org 1.0

Вы теперь должны сообщить OpenOffice.org 1.0 все относительно Вашего ODBC-соединения. Внутри OpenOffice.org 1.0 выберите Tools/Data Sources... из главного меню. Затем нажмите кнопку New Data Source, чтобы открыть окно Data Source Administration. Введите в Name MySQL-test, выберите в качестве Database type ODBC и нажмите кнопку [...]. Затем выберите источник данных, который Вы только что создали в диалоге Data Source. Нажмите OK. Теперь в окне Data Source Administration на вкладке ODBC введите имя пользователя test и нажмите кнопку OK.

Если Вы используете более раннюю версию RedHat или другой метод установки

Если Вы делаете новую рабочую станцию RedHat 9, действуйте как показано здесь, все будет работать. Кроме драйверов MyODBC, RedHat наконец дозрела до совместимых версий программных пакетов в одной версии дистрибутива. Более ранние версии RedHat не работали и требовали, чтобы различные обновления программного обеспечения были установлены. Например, следующее работает:

RedHat 9RedHat 8.0RedHat 7.3
mysql-server-3.23.54a-11mysql-server-3.23.54a-4 MySQL-server-3.23.49-1
mysql-3.23.54a-11mysql-3.23.54a-4MySQL-3.23.49-1
unixODBC-2.2.3-6unixODBC-2.2.2-3unixODBC-2.2.1-2
MyODBC-2.50.39-11MyODBC-2.50.39-4MyODBC-2.50.39-4
MySQL-shared-3.23.49-1MySQL-shared-3.23.49-1

Имеется ошибка в версиях .49a и .50 клиентских библиотек MySQL, которая мешает работать по ODBC: Вы будете видеть сообщения об ошибках подобные relocation error: /usr/lib/libmyodbc.so: undefined symbol: init_dynamic_array. Так что Вы должны получить версию .49 в случае необходимости, ищите через http://www.rpmfind.net.

Если Вы устанавливаете MySQL из исходных текстов Вы (в большинстве случаев) должны будете создать базу данных test и пользователя test сами.

Некоторые установщики используют /usr/local/etc для .ini-файлов и /usr/local/lib для библиотек.

Иногда ODBC не работает, пока не будут созданы файлы ~/.odbc.ini для каждого пользователя.

Если Вы установили библиотеки в /usr/local/lib, Вы должны перед запуском OpenOffice.org 1.0 скомандовать: $ export LD_LIBRARY_PATH=/usr/local/lib

Использование инструментов Data Source в OpenOffice.org 1.0

Поиск инструментов Data Source

Чтобы использовать функции базы данных в любое время, выберите View/Data Sources из главного меню или нажмите F4. На экране Data Sources слева Data Source Explorer показывает все источники данных в настоящее время известные OpenOffice.org. Применяется стандартная навигация: щелчок на знаке + покажет дополнительные сведения, щелчок правой кнопкой мышкой покажет доступные инструментальные средства. Правая сторона экрана занята Data Source Browser, который показывает содержание любого в настоящее время выбранного источника данных.

Работа с определениями таблиц

Создание таблицы

Разверните ссыдку MySQL-test в Data Source Explorer, затем правой кнопкой мышки кликните на

Tables. Из появившегося меню выберите New Table Design для отображения окна Table Design Screen.

Я создам таблицу, чтобы сохранить список торговцев книгами. OpenOffice.org действует как окно в MySQL, так что правила относительно того, как Вы можете вызывать поля, какие типы данных являются доступными и т.д., работают согласно MySQL. Панель в правой нижней части окна содержит контекстно-чувствительную справку, но для получения полной помощи, Вы должны обратиться к документации на MySQL.

Обратите внимание, что если Вы хотите модифицировать данные в этой таблице в OpenOffice.org 1.0, Вы должны определить одно поле как первичный ключ. Вы можете сделать это, щелкая правой кнопкой мыши на индикаторе на левой стороне экрана и указывая параметр Primary Key. Это показывает символ ключа. В моем примере первичным ключом будет ISBN книги. Когда Вы закончили, нажмите кнопку Save, назовите таблицу stocklist и закройте окно. Ваша новая таблица будет теперь видна в Data Source Explorer.

Построение индексов

Имеется также индексный проектировщик, доступный из окна Table Design, через меню Tools/Index/Design... или через кнопку Index Design на инструментальной панели.

Изменение определений таблиц

Если Вы должны сделать изменения для полей в вашей таблице, щелкните правой кнопкой мышки на имени таблицы в the Data Source Explorer и выберите Edit Table. Это переместит Вас обратно в окно Table Design.

Редактирование данных

Таблицы могут быть отредактированы непосредственно из экрана Data Sources: просто нажмите на имя таблицы в Data Source Explorer, и содержание таблицы будет отображаться в Data Source Browser справа на экране.

Обратите внимание на навигационную панель (Navigation Bar) внизу Data Source Browser. Она нужна, чтобы помочь Вам быстро двигаться по таблице.

Обычные соглашения для электронной таблицы также применяются:

Дважды щелкните на заголовке столбца, чтобы изменить ширину столбца.

Щелкните правой кнопкой на заголовке столбца, чтобы изменить ширину столбца вручную, установить новый формат столбца или скрыть столбец вообще.

Щелкните правой кнопкой на любом из маркеров строки, чтобы установить высоту строки или переформатировать целую таблицу.

Обратите внимание: любые комментарии, которые Вы ввели в поле Description, когда Вы настраиваете таблицу, появятся как подсказки, когда Вы перемещаете курсор мыши поверх заголовка столбца в Data Source Browser.

Использование Database Toolbar для работы с Вашими данными

Многое из возможностей OpenOffice.org 1.0 обеспечивается Database Toolbar, которая появляется наверху Data Source Browser. Она содержит следующие кнопки (перечислены слева направо).

Отображение и маскировка Data Source Explorer

Полезно, если Вы хотите максимизировать количество данных, которое Вы можете видеть на экране. Эта кнопка переключает отображение Data Source Explorer (виден или нет).

Find Record

Эта кнопка отображает диалог Record Search. Обратите внимание, что это будет искать запись в таблице, просматривая таблицу по записям. Это может быть медленно на больших таблицах!

Sort Ascending/Sort Descending

Нажмите на заголовок столбца, чтобы выбрать поле, а затем при нажиме любой из этих кнопок данные в Data Source Browser будут отсортированы в порядке возрастания или убывания значений в выбранном Вами поле.

Обратите внимание: кнопки Sort только изменяют способ, которым отображаются данные. На основную базу данных они никак не воздействуют.

AutoFilter

Auto Filtering представляет собой очень мощный инструмент для отображения только тех записей, которые отвечают некоторым критериям. Например, один из издателей в моей таблице называется "Аверс". При нажатии на ячейку, содержащую слово "Аверс" и последующем нажатии на кнопку AutoFilter отобразятся только записи, где издателем является "Аверс". Обратите внимание, что, если Вы теперь делаете другой autofilter, он добавится к тому, который уже в силе: например, повторите процесс для Cover равного H. Это покажет только твердые книги издательства "Аверс". Кнопка Remove Filter/Sort сбросит просмотр таблицы. Обратите внимание: фильтры воздействуют только на способ, которым таблица отображается, они не изменяют данные в базе данных.

Default Filter

При использовании этой кнопки, Вы можете видеть или изменять любой фильтр, работающий в настоящее время. Например, если Вы использовали функцию Autofilter как описано выше, и затем нажали на кнопку Default Filter Вы сможете теперь совершенствовать фильтр, чтобы отобразить твердые книги издательства "Аверс" по цене больше, чем 200 рублей, устанавливая дополнительный фильтр.

Sort

Кнопки Sort Ascending и Sort Descending уже описаны выше. Они дают возможность определить простой порядок сортировки на одиночном поле. Кнопка Sort дает возможность установить более сложные критерии сортировки, например, в алфавитном порядке заголовков.

Remove Filter/Sort

Эта кнопка возвращает просмотр таблицы к значению по умолчанию.

Apply Filter

Если Вы определили фильтр, используя кнопки AutoFilter или Filter, эта кнопка включает и выключает фильтр.

Refresh

Можно открыть множественные окна редактирования той же самой таблицы от одного пользователя или от многих пользователей, если Вы находитесь в многопользовательской системе. Нажим кнопки Refresh вынуждает OpenOffice.org 1.0 перезагружать информацию из базы данных, чтобы отразить любые изменения, сделанные в другом месте.

Edit Data

Если Ваша таблица имеет первичный определенный ключ, нажатие этой кнопки позволит Вам редактировать данные непосредственно в Data Source Browser. Любые изменения, которые Вы делаете на экране, будут зарегистрированы в базе данных, когда Вы переходите к другой записи, или Вы можете применить непосредственную модификацию, используя кнопку Save Current Record.

Save Current Record

Если Вы редактируете запись, нажатие на эту кнопку, вынуждает сервер немедленно вписать изменения в базу данных.

Создание нового представления Ваших данных

Database Toolbar очень мощный инструмент для анализа и работы над Вашими данными. Однако, иногда полезно вызывать предварительно установленный просмотр таблицы. Например, мне пригодится просмотр, показывающий только книги, изданные Нолидж, которые в настоящее время есть в продаже, отсортированные в алфавитном порядке по заголовкам. В окне Data Sources в Data Source Explorer щелкните правой кнопкой мыши по Queries и выберите New Query Design. В диалоге Add Tables пакет запросит Вас относительно таблиц, используемых в запросе. Добавьте туда stocklist и закройте диалог Add Tables Dialogue. Затем Вы попадете на экран Query Design, где можете разрабатывать Ваш запрос.

Строки в Query Design

Field

Поля, которые будут включены в запрос могут быть дважды нажаты в верхнем подокне, перетащены из верхнего подокна или введены, нажимая в строке Field подокна нижней части и используя раскрывающийся список.

Alias

Строка Alias позволяет Вам изменять заголовок столбца.

Visible

Строка Visible позволяет полям использоваться в критериях выбора, но не отображаться.

Functions

Строка Function позволяет Вам определять резюме или группирующие функции.

Criterion

Строка Criterion фильтрует определения: здесь я определил, что издатель равняется Нолидж, и Status равен not empty (null).

Query Toolbar

Query Toolbar обеспечивает большее количество функциональных возможностей:

Run Query

Немедленно отобразит результаты Вашего запроса в новом Data Source Browser. Обратите внимание, что этот новый Data Source Browser также имеет свою собственную инструментальную панель!

Clear Query

Нажим этой кнопки немедленно очищает запрос.

Switch Design View On/Off

Query Designer транслирует Ваш проект запроса в команды SQL, которые понимает MySQL. Для продвинутых пользователей эта кнопка включит отображение необработанных команд SQL, сгенерированных Query Designer. Вы можете редактировать эти команды непосредственно, и изменения будут отражены в Data Designer.

Можно записать просто написать запрос SQL, который является слишком сложным для Query Designer. Всегда сохраняйте запросы перед переключением обратно на Design View.

Add tables...

Позволяет Вам помещать множественные таблицы в запрос.

Functions/Table Name/Alias

Эти кнопки нужны, чтобы отобразить или скрыть соответствующие строки в Query Designer.

Distinct Values

Этот переключатель позволяет Вам создавать запрос, чтобы ответить на вопросы, подобные: "показать мне всех авторов, кто находится в stocklist". Пример, который я использую, имеет 25000 записей. Если Вы пробуете отвечать на вопрос созданием запроса без нажатия кнопки Distinct, OpenOffice.org 1.0 честно покажет все 25000. Ему все равно, что многих авторов он перечислит по нескольку раз. Запрос с Distinct покажет каждого автора только один раз. Это именно то, что нужно.

Edit

Кнопка Edit переключает режим редактирования в Query Design.

Save

Сохраняет Query Design. Если запрос был сохранен, он доступен внутри Data Source Explorer, а содержание может просматриваться в Data Source Browser.

Более сложные запросы

Data Designer представляет собой мощный инструмент для создания запросов, что означает, что Вы можете выполнять повседневные запросы без надобности знать что-либо про SQL. Это включает таблицы подведения итогов и соединение.

Пример 1. Заказы под рукой

Предположим, что Вы создали таблицу Orders, которая хранит книги, которые заказаны. Здесь Вы записываете ISBN каждой книги и количество ее копий для поставки.

Связывание таблиц

Обратите внимание, как две таблицы связаны через общее поле ISBN. Чтобы создать связь в Query Designer, просто перетащите и положите нужное поле из одного списка в другой.

Запросы сохранены в файле DataAccess.xml глубоко внутри Вашей структуры каталога OpenOffice.org.

Вы можете также выполнять любые команды SQL непосредственно, например, специфические для MySQL команды, которые не понятны Data Designer или ODBC.

Продвинутые пользователи могут определять тип связи, дважды нажимая на строке соединения.

Вычисляемые поля

Поле Value определено как произведение Price и Order_Qty, вводя вычисление в запись Field.

Форматирование данных

Поля No, Price и Value форматируются, щелкая правой кнопкой мыши на релевантных столбцах и выбирая соответствующие опции.

Пример 2: Итоговые заказы

Функции Group и Sum

Часто используемые вместе функции Group и Sum определяют, какие данные требуются (Group) и что с ними делать (Sum).

Использование Data Sources в других программах в OpenOffice.org 1.0

Пока этот документ был сконцентрирован на доступе к данным, используя метод F4 View/Data Sources. Однако, иногда более удобно переместить данные непосредственно в другой инструмент, типа OpenOffice 1.0, например, Calc или Writer. Этот раздел показывает Вам, как это сделать.

Calc: создание связи методом Drag and Drop

Извлечение данных из Data Source в электронную таблицу в OpenOffice.org выполняется простым перетаскиванием. В Calc нажмите F4 или из меню выберите View/Data Sources... и откройте таблицу или запрос, который хотите скопировать в Calc. Самое простое, если Вы меняете режим просмотра с Stick на Floating (используйте пиктограмму штырька в левом нижнем углу Data Source Explorer). Чтобы перенести данные в электронную таблицу, просто нажмите на данные и перетащите их в электронную таблицу. Когда Вы их положите, будет создана связь между электронной таблицой и источником данных.

Меню Options

Если Вы создали связь, имеется ряд команд меню, которые Вы можете счесть полезными, доступные из главного меню, когда Вы выбираете ячейку, содержащую связанные данные. В любое время, когда Вы захотите модифицировать электронную таблицу с последними данными в базе данных, выберите из главного меню Data/Refresh Range. Окно Data/Define Range и его кнопка нажмите More позволяют Вам выбрать, импортируются ли заголовки столбца, сохраняется ли Ваше собственное форматирование и сохраняются ли импортированные данные в таблице.

Data Pilot

Data Pilot может обращаться к данным напрямую из Data Sources, давая удивительно мощный инструмент для многотабличных запросов.

Writer: создание связей с помощью метода Drag and Drop

Хотя должно быть можно перетащить и положить данные в текстовый документ таким же образом, как и в электронную таблицу, это не работает правильно в OpenOffice.org 1.0. Однако, эта проблема решаема.

Использование Database Toolbar

Выбор данных в Data Source Browser включает две кнопки: Data to Text... и Data to Fields....

Data to Text...

Имеются три опции, доступные из этой инструментальной панели.

Insert Data as Table позволяет Вам выбирать поля из исходных данных, чьи данные будут скопированы в столбцы таблицы в Вашем документе. Обычные опции форматирования таблицы доступны. Данные скопированы как простой текст и не будет изменяться при внесении изменений в базу данных.

Insert Data as Text точно так же ожидает, что данные просто будут скопированы без того, чтобы форматироваться как таблица. Обратите внимание: это один из способов преобразовать источник данных в разграниченный запятыми текстовый файл для экспорта в другое программное обеспечение.

Data to Fields... используется для операций типа составления стандартных писем. Средства составления стандартных писем в OpenOffice.org 1.0 являются всесторонними и находятся вне рамок этого документа.

Использование Form AutoPilot

OpenOffice.org 1.0 содержит полную среду програмирования, используя вариант популярного языка программирования BASIC. При использовании этой среды, разработчики могут писать полные приложения для конечных пользователей, типа сложных форм. Возможно создать полностью функционирующую форму без знания программирования, использованием Form AutoPilot.

Form AutoPilot в действии

Из главного меню выберите File/AutoPilot/Form.... Отметьте базу данных MySQL-test и запрос Orders on Hand. Скопируйте все поля из окна Existing Fields в окно Fields in Form и нажмите кнопку Next.

OpenOffice.org 1.0 начнет формировать вашу форму в новом окне. В диалоге Choose Layout любые выборки, которые Вы делаете, будут отражены немедленно в новой форме. Закончите нажатием Create. AutoPilot встраивает в одну форму все функциональные возможности необходимые, чтобы поддержать эту таблицу, при работе с Data Navigation и Database Toolbar включая обычно используемые инструментальные средства для фильтрации, сортировки и т. д. Это очень простой способ создать простое приложение базы данных. Обратите внимание: если Вы хотите исследовать опции, доступные для разработки этой формы далее, нажмите кнопку Form на инструментальной панели слева на экране. Она включает или выключает режим Design. В режиме Design Вы можете выбирать объекты в форме и правом щелчком мыши на них отображать и редактировать их реквизиты, данные и события (Properties, Data и Events).