База Знаний: Base. Связывание OpenOffice.org с MySQL сервером
From Wiki
Jump to navigationJump to search
Материал для этой статьи сформулирован на основе обсуждения
в community.i-rs.ru.
Создание соединения с сервером MySQL
Для связи InfraOffice.pro / OpenOffice.org с MySQL сервером необходимо выполнить следующие действия.
- Создать новый документ InfraOffice.pro Base;
- Подключиться к существующей базе данных (выбрать MySQL), щёлкнуть кнопку Далее ;
- Выбрать Прямое соединение, щёлкнуть Далее ;
- Заполнить поля:
- ввести имя базы данных в MySQL (например test);
- в поле Сервер ввести IP сервера MySQL;
- в поле Порт ввести порт прослушиваемый MySQL сервером (по умолчанию это 3306);
- щёлкнуть кнопку Далее ;
- Имя пользователя оставить пустым, дабы не писать код по запросу логина и пароля у пользователя. Если InfraOffice.pro Base делается для собственного пользования, можно указать свой логин на MySQL, тогда Base при открытии автоматически будет создавать соединение с MySQL по заданному логину и паролю;
- если требуется ввод пароля, то установить соответствующий флаг. Если его не поставить, Base не будет запрашивать ввод логина и пароля при запуске (предполагается, что логин и пароль для подключения к MySQL не требуются);
- отметить флаг Да, зарегистрировать базу данных , щёлкнуть кнопку Далее ;
- выбрать место для файла InfraOffice.pro Base и сохранить его.
Всё, файл готов к работе.
Работа с созданным соединением
Теперь, при открытии, если логин оставлен пустым, всплывёт окно Требуется аутентификация, в которое необходимо ввести логин и пароль, и щёлкнуть ОК .
Получение соединения
Далее, для того чтобы получить соединение из программы, необходимо ввести следующий код:
oDB = ThisDatabaseDocument.CurrentController.ActiveConnection
Выполнения запроса
1. Для удаления, обновления, ... (изменение данных):
oStmt = oDB.createStatement()
sSql = "DELETE FROM test.table WHERE ID = 1;"
oStmt.executeUpdate(sSql)
2. Для выполнения запросов на выборку (не изменяются данные):
oStmt = oDB.createStatement()
sSql = "SELECT t.* FROM test.table AS t WHERE t.ID = 1;"
oResult = oStmt.executeQuery(sSql)
while oResult.next
'обработка данных возвращенных MySQL сервером
wend
InfraOffice.pro 3.1.x