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しなければ取得できないのか?それとも別の方法があるのか?
どなたかご教授いただけませんでしょうか?
1番目の実装方法の記載がないので何ともいえませんが
例えばDBアクセス用の、ActiveXコントロールを使用した
方法だとしても内部でOpenが呼ばれていると思います。
CDatabase db;
db.ExecuteSQL(SQL文);
みたいな方法でもいけたかも。
そういう話じゃなかったらゴメンナサイ
同じ質問がされていたのでリンクしておきます。
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200705/07050035.txt
もう一つありました
http://www2.moug.net/bbs/program/20070520000001.htm
いろいろなところで質問しているようですが
どういう回答を期待しているのかが分からないのが
一番の原因かもしれませんね。
総スカン食らってますが、困っているなら
「ららら」さんのところで提示している「使用上の注意 」の
技術系メーリングリストで質問するときのパターン・ランゲージ
http://www.hyuki.com/writing/techask.html
くらいは一読してください。
マルチポストについては否定しませんが、レスがないので
返答しようがありません。
内部でOpenが呼ばれているのですね。ありがとうございました。
ツイート | ![]() |