Конференция "Базы" » Не могу получить запрос пароля для подключения к firebird
 
  • toboom © (06.12.11 16:19) [0]
    Господа!

    Вроде как я это уже проходил, а сейчас полная...

    Итак:
    Работаю с firebird через компоненты InterBase.
    Т.е. в дата модуле есть нечто подобное:

    TDM = class(TDataModule)
       VADatabase: TIBDatabase;
       VATransaction: TIBTransaction;

    Все пути и т.д. установлены правильно - когда я из среды Delphi устанавливаю
    свойство connected в истину - идёт запрос пароля и мы успешно подключаемся.
    Ставим connected в ложь и пишем в программе

    Dm.VADatabase.Connected:=True;

    Получаем сообщение: "operation cancelled at users request".
    Я понятно никакого завершения не запршивал. Более того - никто у меня пароля
    и не спрашивает, несмотря на то, что свойство

    Dm.VADatabase.LoginPrompt:=True

    Убейте не понимаю в чем проблема и буду сильно благодарен, если просветите.
  • Ega23 © (06.12.11 16:41) [1]

    > Ставим connected в ложь


    Disconnect:
    1. Завершаем все транзакции (if Tran.InTransaction then Tran.Commit или rollback)
    2. Ставим VADatabase.Connected:=False;

    Connect:
    1. Ставим VADatabase.Connected:=True;
    2. Стартуем транзакцию на чтение
  • Ega23 © (06.12.11 16:44) [2]
    procedure DoConnect;
    procedure DoDisconnect;

    procedure TDBConverterMainForm.DoConnect;
    begin
    DoDisconnect;

    FDB.LoginPrompt := False;
    FDB.Params.Values['lc_ctype'] := 'WIN1251';
    FDB.Params.Values['user_name'] := 'SYSDBA';
    FDB.Params.Values['password'] := 'masterkey';
    FDB.DatabaseName := eGToolDBFileName.Text;

    FDB.Connected := True;

    WTran.Params.Text := 'read_committed'#13#10'rec_version'#13#10'nowait';
    RTran.Params.Text := 'read_committed'#13#10'rec_version'#13#10'nowait'#13#10'read';
    RTran.StartTransaction;

    eGToolDBFileName.Color := clGradientInactiveCaption;

    SetStatusText(Format('Подключение к БД %s', [eGToolDBFileName.Text]));
    end;

    procedure TDBConverterMainForm.DoDisconnect;
    begin
    ibsqlRead.Close;
    if WTran.InTransaction then
     WTran.Rollback;
    if RTran.InTransaction then
     RTran.Rollback;

    FDB.Connected := False;

    eGToolDBFileName.Color := clWindow;

    SetStatusText(Format('Отключение от базы  %s', [FDB.DatabaseName]));
    end;

  • toboom © (06.12.11 16:51) [3]
    Спасибо, что откликнулись.
    Но:
    "1. Завершаем все транзакции (if Tran.InTransaction then Tran.Commit или rollback)"
    Я же только запускаю приложение, одключения нет, нет и незавершенных транзакций.

    "2. Ставим VADatabase.Connected:=False;

    Connect:
    1. Ставим VADatabase.Connected:=True;"

    По сути это я и делаю, по моему понятию при установке Connected:=True должен выскочить запрос логина, пароля. А этого и не происходит!

    Соотв. до
    "2. Стартуем транзакцию на чтение"
    просто не доходим - исключение.
  • toboom © (06.12.11 16:54) [4]
    Я в том смысле, что пароль у пользователя ХОЧУ спросить, но система это делать отказывается.
  • Ega23 © (06.12.11 17:00) [5]

    > Я в том смысле, что пароль у пользователя ХОЧУ спросить,
    >  но система это делать отказывается.


    Давай код.
  • makz (06.12.11 17:12) [6]
    Добавь в uses DbLogDlg.
  • toboom © (06.12.11 17:34) [7]
    Совет от makz на тему "Добавь в uses DbLogDlg." помог кардинально!

    моя благодарность не знает границ!
 
Конференция "Базы" » Не могу получить запрос пароля для подключения к firebird
Есть новые Нет новых   [134431   +10][b:0][p:0.001]