Selectの実行方法

解決


HIRO  2007-05-20 00:43:08  No: 65152  IP: 192.*.*.*

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しなければ取得できないのか?それとも別の方法があるのか?
どなたかご教授いただけませんでしょうか?

編集 削除
s  2007-05-20 17:52:34  No: 65153  IP: 192.*.*.*

1番目の実装方法の記載がないので何ともいえませんが
例えばDBアクセス用の、ActiveXコントロールを使用した
方法だとしても内部でOpenが呼ばれていると思います。

CDatabase db;
db.ExecuteSQL(SQL文);

みたいな方法でもいけたかも。

そういう話じゃなかったらゴメンナサイ

編集 削除
通りすがり  2007-05-21 11:54:16  No: 65154  IP: 192.*.*.*

同じ質問がされていたのでリンクしておきます。
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200705/07050035.txt

編集 削除
通りすがり  2007-05-21 13:42:12  No: 65155  IP: 192.*.*.*

もう一つありました
http://www2.moug.net/bbs/program/20070520000001.htm

編集 削除
s  2007-05-22 01:10:35  No: 65156  IP: 192.*.*.*

いろいろなところで質問しているようですが
どういう回答を期待しているのかが分からないのが
一番の原因かもしれませんね。

総スカン食らってますが、困っているなら
「ららら」さんのところで提示している「使用上の注意 」の

技術系メーリングリストで質問するときのパターン・ランゲージ
http://www.hyuki.com/writing/techask.html
くらいは一読してください。

マルチポストについては否定しませんが、レスがないので
返答しようがありません。

編集 削除
HIRO  2007-05-22 22:31:17  No: 65157  IP: 192.*.*.*

内部でOpenが呼ばれているのですね。ありがとうございました。

編集 削除