フォームを使わないでデータベースにアクセスするには?

解決


KR  2007-09-20 16:29:12  No: 27815

フォームにTQueryなどのコンポーネントを貼り付けずに
データベースにアクセスすることはできますか?

下記のようなことをやりたいのです。
「あるデータを渡すと、データベースファイル(Access
2000)を検索し、検索結果を返すクラスを作りたい。」

フォームにTQueryコンポーネントを貼り付け、データの
検索、取得はできるようになりました。
ただ、それらの処理をフォームから独立させようとして
下記のようなコード(ただし、手打ちです。ご容赦くだ
さい)を書いてみました。



type
  TFooQuery = class(TObject)

private
  FQuery : TQuery;

public
  constructor Create;
end;


constructor TFooQuery.Create;
begin
  FQuery.ConeectionString := 'Proveider=…(中略)…'  {(1)}
end;

(1)では、エラーが発生します。
これは、FQueryをCreateしていないためと思いますが、
Createメソッドを入れようとすると、引数(TOwner)を要求
されますが、フォームに配置していないので、引数を
入れられないように思います。

どのようにしたらよろしいでしょうか?
初歩的な質問で恐縮ですが、ご教授をお願いいたします。


Free  2007-09-20 17:17:55  No: 27816

FQuery := TQuery.Create(nil);

Owner = nil にしたからには、責任もって Free すること


AVA  2007-09-20 18:50:30  No: 27817

TFormからデータベースを独立するなら、データモジュールを使用したらいかがですか。
Turbo Delphiでは[ファイル|新規作成|その他]で表示されるダイアログでDelphiファイル→データモジュールを選択します。
TFormから作成したデータモジュールにアクセスするには、TFormにデータモジュールのユニット名をusesに追加します。


KR  2007-09-20 19:01:09  No: 27818

Freeさま、AVAさま
ご回答が遅れまして申し訳ありません。

Freeさま
ご回答がありがとうございます。

AVAさま
データモジュールと言うものにまだ触れた
ことがありませんでした。
ご回答ありがとうございます。

Freeさま、AVAさまのご回答を試してみて
から、再度、ご連絡させていただきます。


KR  2007-09-21 16:12:23  No: 27819

Freeさま、AVAさま

おかげさまで解決いたしました。

特にデータモジュールはいままで触れたこと
がありませんでしたが、かなり使えそうです。

また何かありましたら、よろしくお願いいた
します。


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

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






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