初心者です。しかも50歳を過ぎています。
DBはFireBirdを使っています。Delphiは6です。
設計時、SQLConnectionのUSER NAME および PASSWORDを設定しないで、
SQLConnectionのLoginPromptをTrueにするとログインダイアログを表示
されます。ここでUSER NAME および PASSWORDを入力し、接続できます。
ここで質問なのですが起動時のFormにボタンを置いて
showmessage(DataModule1.SQLConnection1.Params.Values['Password']);
としても何も表示されません。
ログインダイアログでユーザーが入力したパスワードを取得したいのですが
ご指導して頂けませんか?
私なら、ログインフォームを自前で用意して、そこで取得します。
たいしたコード量でもないですし、レイアウトなども自由にできますし。
にしのさん、ありがとうございます。
ご回答のとおりなんですが、自前のフォームを
利用しないで取得できないものでしょうか?
よろしくお願い申し上げます。
試していませんが、OnLoginイベントのLoginParamsで取得できませんか?
余談ですが、FireBirdならば、TIBDatabaseのほうがよいかも。
Embedded Serverを使うと、DLLをローカルに設置するだけでFirebirdのDBが使えます。
http://tech.firebird.gr.jp/firebird/index.php?firebird_xsite=83
ちょっとしたアプリを作るのに便利です。
にしのさん、恐れ入ります。
>試していませんが、OnLoginイベントのLoginParamsで取得できませんか?
ご指導のとおり、ずっと試みていますが、OnLoginイベントに
例えば、変数に保存したりしますと、LoginPromptをTrueに設定していても
ログインダイアログが表示されなくなります。
(ヘルプを見ると設定するのようなことが書かれていますが・・・)
誠に、誠に恐縮ですが、試してはいただけないでしょうか。
また、参考のEmbedded Serverですが、まだ私には理解できません。
そんなレベルなのでよろしくお願いします。
にしのさん、ありがとうございました。
とりあえず取得できました。
初心者の私にとっていいかどうかは???ですが・・・。
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;
ツイート | ![]() |