VC++6.0、DBはAccess2000で接続はODBCでMFCを利用した
データベースプログラムを勉強中です。
DB構成はテーブル名Addess、項目名はAddressID オートナンバー型、
Name 文字列型、Home 文字列型 となっています。
本を参考にしながらFMC AppWizard(exe)を起動してスケルトンを作成。
1.
フォームにエディットボックスを2つ設定し、メンバー変数を追加して
AddressIDとNameデータを表示することはできました。
2.
そこでSQL文を使って、AddressIDが2のNameのみ表示するように
しました。
-------
CDemoSet rs;
CString s_name, SqlString;
SqlString = SELECT AddressID,Name FROM [Address] WHERE (AddressID = 2);
rs.Open(CRecordset::forwardOnly,SqlString,CRecordset::readOnly);
AfxMessageBox(rs.m_Name);
rs.Close();
-------
とりあえず、動作はしたのですが、1を作成した時は特にOpenせずに
データが表示されました。
ということは2のSQLを利用してというのもOpenをせずにSQLのみ実行
すれば、データを得ることができるのではないか?と
思うのですが、その方法が本に記述されていません。
Openしなければ取得できないのか?それとも別の方法があるのか?
どなたかご教授いただけませんでしょうか?
レコードセットを使ってるようなので
2はフィルターを設定するだけでもいけますよ
わざわざ、SQLにせんでもよろしいかと?
1はOPENしなかったのではなく、単一テーブルの場合
OPENを意識しなくても動作されるようにウィザードが隠してるだけですと
レコードセットのクラスをご参照ください
GetDefaultSQL
とか居ると思いますよ
DDX/DDV
DoFieldExchange
などについても勉強しましょう、MSDNだけで事足りるはずです