Selectの実行方法

解決


HIRO  2007-05-20 09:43:08  No: 65152

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-21 02:52:34  No: 65153

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

CDatabase db;
db.ExecuteSQL(SQL文);

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

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


通りすがり  2007-05-21 20:54:16  No: 65154

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


通りすがり  2007-05-21 22:42:12  No: 65155

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


s  2007-05-22 10:10:35  No: 65156

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

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

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

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


HIRO  2007-05-23 07:31:17  No: 65157

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加