パスワードを取得したい。

解決


おじん  2005-06-03 14:37:19  No: 15314

初心者です。しかも50歳を過ぎています。
DBはFireBirdを使っています。Delphiは6です。
設計時、SQLConnectionのUSER NAME および PASSWORDを設定しないで、
SQLConnectionのLoginPromptをTrueにするとログインダイアログを表示
されます。ここでUSER NAME および PASSWORDを入力し、接続できます。
ここで質問なのですが起動時のFormにボタンを置いて
showmessage(DataModule1.SQLConnection1.Params.Values['Password']);
としても何も表示されません。
ログインダイアログでユーザーが入力したパスワードを取得したいのですが
ご指導して頂けませんか?


にしの  2005-06-03 18:21:26  No: 15315

私なら、ログインフォームを自前で用意して、そこで取得します。
たいしたコード量でもないですし、レイアウトなども自由にできますし。


おじん  2005-06-03 20:58:58  No: 15316

にしのさん、ありがとうございます。
ご回答のとおりなんですが、自前のフォームを
利用しないで取得できないものでしょうか?
よろしくお願い申し上げます。


にしの  2005-06-03 22:25:08  No: 15317

試していませんが、OnLoginイベントのLoginParamsで取得できませんか?


にしの  2005-06-03 22:29:27  No: 15318

余談ですが、FireBirdならば、TIBDatabaseのほうがよいかも。
Embedded Serverを使うと、DLLをローカルに設置するだけでFirebirdのDBが使えます。
http://tech.firebird.gr.jp/firebird/index.php?firebird_xsite=83
ちょっとしたアプリを作るのに便利です。


おじん  2005-06-04 15:07:59  No: 15319

にしのさん、恐れ入ります。
>試していませんが、OnLoginイベントのLoginParamsで取得できませんか?
ご指導のとおり、ずっと試みていますが、OnLoginイベントに
例えば、変数に保存したりしますと、LoginPromptをTrueに設定していても
ログインダイアログが表示されなくなります。
(ヘルプを見ると設定するのようなことが書かれていますが・・・)
誠に、誠に恐縮ですが、試してはいただけないでしょうか。

また、参考のEmbedded Serverですが、まだ私には理解できません。
そんなレベルなのでよろしくお願いします。


おじん  2005-06-07 15:25:14  No: 15320

にしのさん、ありがとうございました。
とりあえず取得できました。
初心者の私にとっていいかどうかは???ですが・・・。

LoginPromptプロパティを False に設定してUse節にDBLogDlgを追加して
procedure TDataModule1.SQLConnection1BeforeConnect(Sender: TObject);
var
 mUser,mPass:String;
begin
  SQLConnection1.Connected:=False;
  if DBLogDlg.LoginDialog('xxx.FDB',mUser,mPass) then
  begin
    SQLConnection1.Params.Values['User_Name'] :=mUser;
    SQLConnection1.Params.Values['Password']:=mPass;
    showmessage(mUser+#13+#10+mPass);
  end;
end;


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加