フォームに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)を要求
されますが、フォームに配置していないので、引数を
入れられないように思います。
どのようにしたらよろしいでしょうか?
初歩的な質問で恐縮ですが、ご教授をお願いいたします。
FQuery := TQuery.Create(nil);
Owner = nil にしたからには、責任もって Free すること
TFormからデータベースを独立するなら、データモジュールを使用したらいかがですか。
Turbo Delphiでは[ファイル|新規作成|その他]で表示されるダイアログでDelphiファイル→データモジュールを選択します。
TFormから作成したデータモジュールにアクセスするには、TFormにデータモジュールのユニット名をusesに追加します。
Freeさま、AVAさま
ご回答が遅れまして申し訳ありません。
Freeさま
ご回答がありがとうございます。
AVAさま
データモジュールと言うものにまだ触れた
ことがありませんでした。
ご回答ありがとうございます。
Freeさま、AVAさまのご回答を試してみて
から、再度、ご連絡させていただきます。
Freeさま、AVAさま
おかげさまで解決いたしました。
特にデータモジュールはいままで触れたこと
がありませんでしたが、かなり使えそうです。
また何かありましたら、よろしくお願いいた
します。
ツイート | ![]() |