Диалог аутентификации из макроса

Автор Aspiring, 2 декабря 2014, 06:22

0 Пользователи и 1 гость просматривают эту тему.

Aspiring

Добрый день!
ос: windows 7
пакет: OpenOffice 4.1.1
java: 1.8

Введение:
Имеется два .odb документа. один содержит таблицы БД, другой лишь подключение к удаленному серверу БД.
И один .ods документ. макросы хранятся в этом же документе. Имеется приличная отдельная библиотека которая так или иначе использует эти оба источники данных в своих скриптах. а иногда оба одновременно(синхронизация данных в таблицах).

Побочный эффект:
В следствии выше описанного в ods документе при открытие появляется диалог "Требуется аутентификация"
в котором уже есть имя пользователя.

Вопрос:
Как можно заменить данный диалог своим? Может можно как то отключить запрос логина с паролем.

В скриптах везде перед обращением к любому источнику данных используется функция:

Function getConnection(contextName)
Dim Connection As Object
login = "user"
pass = "secret password"

DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName(contextName)

Connection = DataSource.GetConnection(login, pass)
getConnection = Connection
End Function


так что по сути мне не не нужно дефолтное подключение calc'a к base.

Благодарю всех откликнувшихся!


Aspiring

Неужели никто не сталкивался? Или может вопрос достаточно глуп что никто даже не берется ответить?!

JohnSUN

Да нет, не глуп, нормальный вопрос...
Требовать ввод пароля - это одна птичка в свойствах базы данных. Ты, похоже, когда создавал соединение, просто её не сбросил (или установил).
Открой .odb, зайди в Правка-База данных-Свойства... и проверь состояние флажка "Необходимо ввести пароль" (для разных подключений он может находится в разных местах)
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Aspiring

Я думал что эта галочка сообщает о том, что помимо логина нужен еще и пароль.
Ну да чет не сообразил. попробую. Спасибо!

Aspiring

JohnSUN, теперь когда я убрал галочку, при попытке открыть форму у меня вываливается ошибка
Невозможно установить соединение с источником данных "бла_бла"
Couldn't establish database connect to 'sdbc:postgresql:dbname=blablabla host=bla.bla.bla.bla port=5432' (fe_sendauth: no password supplied)

полагаю что мне необходимо перед попыткой подключения создать дефолтное подключение с программной задачей логина и пароля. но где и как это сделать?

Спасибо!

JohnSUN

Перечитал твоё первое сообщение... Много думал...   :roll:

Давай ещё раз... Работаешь с двумя базами, к каждой из них цепляешься из макроса, одним и тем же кодом... Получаешь приглашение на ввод пароля.
Сколько раз? Оба-два, для каждой базы? Или только один раз - для той, которая "лишь подключение к удаленному серверу БД"? И как именно цепляешься к этой второй базе? Через ODBC, что ли? Что за сервер-то?
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Aspiring

один раз при входе. строка подключения такая - "sdbc:postgresql:dbname=blablabla host=bla.bla.bla.bla port=5432" сервер PostgreSQL вероятно подключение через sdbc.
нужно чтобы не спрашивал. я сам подключусь когда это будет мне необходимо, к этому моменту я буду знать необходимый логин и пароль для подключения. Ну или пусть это будет автоматический запрос пользователю, только либо его пароль, а не пароль админа и только тогда когда потребовалось подключение к БД. а не при открытии.
Я не умею объяснять что есть и что надо. Надеюсь понятно написал...)))

JohnSUN

Цитата: Aspiring от 11 декабря 2014, 06:27
я сам подключусь когда это будет мне необходимо, к этому моменту я буду знать необходимый логин и пароль для подключения
... и изменишь строку подключения, дописав после "...bla.bla.bla.bla port=5432" еще две пары <параметр>=<значение> - для user и для password?
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне