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

解決


KR  2007-09-20 07:29:12  No: 27815  IP: 192.*.*.*

フォームに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 08:17:55  No: 27816  IP: 192.*.*.*

FQuery := TQuery.Create(nil);

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

編集 削除
AVA  2007-09-20 09:50:30  No: 27817  IP: 192.*.*.*

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

編集 削除
KR  2007-09-20 10:01:09  No: 27818  IP: 192.*.*.*

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

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

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

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

編集 削除
KR  2007-09-21 07:12:23  No: 27819  IP: 192.*.*.*

Freeさま、AVAさま

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

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

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

編集 削除