2015-11-26 4 views
0

Я тестирую довольно старое приложение Delphi 6 и хотел бы показать имя базы данных, к которой фактически подключен TSqlConnection, поэтому я могу быстро увидеть, подключен ли я к тестовой или производственной базе данных.Как я могу получить имя базы данных, к которой фактически подключен DBExpress TSqlConnection?

В sqlconnections.ini, приложение имеет связь с именем «Вена» к Firebird базы данных, определенной следующим образом: Database = 192.168.1.15: ProductionDB (это псевдоним) и я заменил, что для целей тестирования с База данных = 192.168.1.15: TestDB.

Но я видел, что просто доступ к Params-List TSqlConnection и там значение «База данных» не работает. Это значение всегда устанавливается так же, как и в режиме разработки.

Как я могу узнать, в какой базе данных (какой псевдоним Firebird в моем случае) фактически связан TSqlConnection?

+1

Какой Firebird версии? –

+0

@Mark версия 2.1.3 – dsungaro

ответ

1

таблицы мониторинга были введены в FB 2.1.x :-)

Так что попробуйте

select MON$DATABASE_NAME from MON$DATABASE 

Или попробуйте

select MON$ATTACHMENT_NAME from MON$ATTACHMENTS 
    where MON$ATTACHMENT_ID = CURRENT_CONNECTION 

Посмотреть информацию на

0

Когда SQLConnection.Params свойство пустой Params.Values['Database'] возвращает пустую строку, даже если BeforeConnect или AfterConnect события увольняют.

Вы можете использовать событие TSQLConnection.OnLogin. Например:

procedure TForm11.SQLConnection1Login(Database: TSQLConnection; 
    LoginParams: TWideStrings); 
var 
i : integer; 
begin 
    //Show all params 
    for I := 0 to LoginParams.Count - 1 do 
    ShowMessage(LoginParams[i]); 

    // Show database 
    ShowMessage(LoginParams.Values['Database']); 
end; 

Используйте событие OnLogin для присвоения значений в имя_пользователя, пароль и параметры базы данных непосредственно перед TSQLConnection пытается подключиться к серверу базы данных. OnLogin происходит только в том случае, если свойство LoginPrompt имеет значение true. Если LoginPrompt имеет значение true, но обработчик события OnLogin отсутствует, появляется диалоговое окно входа по умолчанию, в котором пользователь может ввести имя пользователя и пароль . Соединение не работает, если правильные значения для имени и пароля пользователя не указаны в диалоговом окне или обработчиком событий OnLogin .

Source