SQL文の実行にはOpenが必要? – プログラミング – Home

SQL文の実行にはOpenが必要?
 
通知
すべてクリア

SQL文の実行にはOpenが必要?


HIRO
 HIRO
(@HIRO)
ゲスト
結合: 23年前
投稿: 40
Topic starter  

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


引用解決済
トピックタグ
asd
 asd
(@asd)
ゲスト
結合: 18年前
投稿: 17
 

リンクしておきます
http://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?print+200705/07050019.txt


返信引用
asd
 asd
(@asd)
ゲスト
結合: 18年前
投稿: 17
 

もう一件
http://www2.moug.net/bbs/program/20070520000001.htm


返信引用
wood
 wood
(@wood)
ゲスト
結合: 23年前
投稿: 895
 

レコードセットを使ってるようなので
2はフィルターを設定するだけでもいけますよ

わざわざ、SQLにせんでもよろしいかと?

1はOPENしなかったのではなく、単一テーブルの場合
OPENを意識しなくても動作されるようにウィザードが隠してるだけですと

レコードセットのクラスをご参照ください

GetDefaultSQL
とか居ると思いますよ

DDX/DDV
DoFieldExchange
などについても勉強しましょう、MSDNだけで事足りるはずです


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました