データベースログイン画面


きんたろう  2003-06-28 00:34:15  No: 3890

現在、ODBC-BDE経由でデータベースにアクセスする。
プログラムを作ろうと思っているのですが、
データーベースのログイン画面が出てきてしまいます。
たしか、データベース・コンポーネントのParamsプロパティに
USER NAME=scott
PASSWORD=tiger
を設定すれば、よかったと記憶しているのですが、
これだけではなさそうです。
何方か、データベースへのログイン画面を出さない方法を知っていらっしゃる方よろしくおねがいします


  2003-06-28 00:44:42  No: 3891

LoginPrompt:=False; // ?


きんたろう  2003-06-28 00:54:26  No: 3892

ネットでけんさくしたら下記のプログラムが乗っていました
try
     with Database1 do
     begin
       AliasName := 'BDEで設定したエリアス';
       DatabaseName := 'TQueryやTTableで用いるDatabaseName';
       LoginPrompt := False;
       Params.Clear;
       Params.Add('USERNAME=scott');
       Params.Add('PASSWORD=tiger');
       Open;
     end;  {end with Database1}
   except
     MessageDlg('データベースの接続に失敗しました。', mtError, [mbOk], 0);
   end;

しかし、tryでエラーがでてうまくゆきませんでした。delphi6をしようしてます。何か意見ありましたらよろしくおねがいします。


  2003-06-28 01:00:46  No: 3893

どんなエラーでしょう?

Params.Add('USERNAME=scott');
Params.Add('USER NAME=scott'); // ?


きんたろう  2003-06-28 02:00:53  No: 3894

早速の返答ありがとうございます。大変はずかしいエラーなのですが[[エラー] Unit1.pas(117): except または finally が必要です]と表示されます。なので上記のプログラムではうまくいかないと思われます。  どのようなプロフラムに変更したらよいのでしょうか?  ご意見お待ちしております


  2003-06-28 02:13:14  No: 3895

コンパイルエラーですよね?
試したものをそのままコピペします。エラーはありません。
  try
    with Database1 do begin
      AliasName := 'ABC';
      DatabaseName := 'DEF';
      LoginPrompt := False;
      Params.Clear;
      Params.Add('USER NAME=XYZ');
      Params.Add('PASSWORD=password');
      Open;
    end;
  except
    MessageDlg('Connection Failed !!',mtError,[mbOK],0);
  end;
そちらのコードと何か違いがありませんか?特にexceptのあたりで。


きんたろう  2003-06-28 02:28:05  No: 3896

早速のご返答ありがとうございます。上記ソースをコピペさせていただきました。[エラー] Unit1.pas(113): 宣言 が必要な場所に 'TRY' があります」とコンパイルエラー表示がでます。  ご迷惑かけてもうしわけございません。ご意見よろしくおねがいいたします。


  2003-06-28 02:41:42  No: 3897

先ほどのコードをコピペした場所の問題かと思います。
コードあげてもらえますか?


きんたろう  2003-06-28 02:44:25  No: 3898

procedure TForm1.FormCreate(Sender: TObject);
try
    with Database1 do begin
      AliasName := 'db2';
      DatabaseName := 'db2';
      LoginPrompt := False;
      Params.Clear;
      Params.Add('USER NAME=scott');
      Params.Add('PASSWORD=tiger');
      Table1.Open;
    end;
  except
    MessageDlg('Connection Failed !!',mtError,[mbOK],0);
end;

end;

コードは上記のようになります。よろしくおねぎいたします。


  2003-06-28 02:48:24  No: 3899

procedure TForm1.FormCreate(Sender: TObject);
begin  // <--です
try
    with Database1 do begin
      AliasName := 'db2';
      DatabaseName := 'db2';
      LoginPrompt := False;
      Params.Clear;
      Params.Add('USER NAME=scott');
      Params.Add('PASSWORD=tiger');
      Table1.Open;
    end;
  except
    MessageDlg('Connection Failed !!',mtError,[mbOK],0);
  end;
end;


きんたろう  2003-06-28 03:01:10  No: 3900

毎度すみませんありあがとうございました。上記ソースでコンパイルは通ったのですが、データベースへのログイン画面が表示されてしまいます。たびたびすみませんよろしくおねがいいたします。


  2003-06-28 03:23:40  No: 3901

状況がよく見えないのですが、
procedure TForm1.FormCreate(Sender: TObject);
begin
try
    with Database1 do begin
      AliasName := 'db2';
      DatabaseName := 'db2';
      LoginPrompt := False;
      Params.Clear;
      Params.Add('USER NAME=scott');
      Params.Add('PASSWORD=tiger');
ShowMessage('Step1');
      Table1.Open; //?
ShowMessage('Step2');
    end;
  except
    MessageDlg('Connection Failed !!',mtError,[mbOK],0);
  end;
end;
として、どうなるでしょう?


きんたろう  2003-06-28 03:29:04  No: 3902

ご返答ありがとうございます。ネットで検索したところ、「データベースへのログイン画面を出さない方法」として上記のソースが載っていたので、コピーしただけです。addでユーザーネームとパスワードに勝手に挿入してくれるプログラムだと予想していましたが、最近はじめたばかりで勉強不足でもうしわけございません。上記のプログラムではデータベースへのログイン画面は表示されてしまうので、表示させないためには、どのようなコードになるのでしょうか?


  2003-06-28 03:43:11  No: 3903

procedure TForm1.Create(Sender: TObject);
begin
  try
    with Database1 do begin
      AliasName := 'ABC';
      DatabaseName := 'DEF';
      LoginPrompt := False;
      Params.Clear;
      Params.Add('USER NAME=XYZ');
      Params.Add('PASSWORD=password');
      Open; // *
    end;
  except
    MessageDlg('Connection Failed !!',mtError,[mbOK],0);
  end;
end;
先ほどもあげたコードなのですが。。。
記述されているエリアスやユーザー名/パスワードで
接続したいデータベース(DB2?Oracle?)に手動で
接続は出来てるんですよね?


きんたろう  2003-06-28 03:55:57  No: 3904

データベースはAccessを使用しています。ODBCで手動では接続できます。上記コードをコピペさせていただいたんですが、コンパイルはとおるのですがログイン画面が表示されてしまいます。他に設定しなけばいけない部分があるのでしょうか?


  2003-06-28 04:11:12  No: 3905

Access/ODBCですか。
詳しくないので、ごめんなさい。
http://t-sakamoto.hp.infoseek.co.jp/D00300.html
の第5回か第6回あたりを見ていただくと非常に参考になると思います。
図版が多いので重いですが、丁寧に説明されています。
LoginPromptの記述もあったはずです。


きんたろう  2003-06-28 04:27:55  No: 3906

?さんありがとうございます。毎回丁寧な返答感謝してます。自分の勉強不足にもかかわらず丁寧な返答たすかりました。上記ホームページ昨日閲覧してみたのですが、ログインの画面については触れていないようです。またなにかありましたらご意見お願い致します。今までありがとうございました。


  2003-06-28 05:11:14  No: 3907

きんたろうさん
お役に立てず申し訳ありませんでした。
では、またいずれの機会に。


きんたろう  2003-06-28 22:00:16  No: 3908

?さんいろいろ助かりました。感謝しています。又機械ありましたらよろしくお願い致します


Lupin  2003-11-11 02:43:00  No: 3909

『dBase』表記の部分を『アクセス』に変えて
http://www.borland.co.jp/qanda/delphi/d0000887.html
を参考にして下さい。 
ポイントは
>オプションの,[ログインプロンプトを出す(L)]をチェックを外します。
の部分です。これでログインプロンプトが出なくなります。それと
TDatabaseの設定で
>Database をクリックして,[ドライバ名]の右下矢印を押して,BDE 環境
>設定で指定した BDE ドライバー名を選択します。
とありますが、なぜかBDE ドライバーでうまくいかないとき
(TTable の TableNameでBDE10013エラーが出る)
は[ドライバ名]ではなく[エリアス名]に直接ODBCドライバーを指定する
とうまくいく場合があります。
ご参考まで・・・。


HOota  2003-11-12 06:02:27  No: 3910

TDataBaseの
LoginPrompt:=False;
は試されましたか?
DataBase1の設定をしていますが、毎回設定先が変わるのでしょうか?
一定のデーターベースならば、プロパティの設定でよいと思いますが、いかがでしょうか?


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

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






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