BOOL bRet;
CDatabase rDB;
try{
bRet = rDB.Open(NULL);
}
catch(CDBException* err){
::MessageBox(NULL,err->m_strError,ERROR,MB_OK);
err->Delete();
}
if (!bRet) {
rDB.Close();
return ;
}
CRecordset rRS(&rDB);
try{
bRet = rRS.Open(NULL,select * from emp);
}
catch(CDBException* err){
::MessageBox(NULL,err->m_strError,ERROR,MB_OK);
err->Delete();
}
のようにしてるのですがうまくいきません。
どこを直したらよいか教えてください
よろしくおねがいします。
mfcを使用していますよね、odbc接続ですよね
データベースのオープンをその関数ごとに切り替える必要あるのですか
チャッチされたエラーコードはどんな値ですか
どっちのメッセージボックスでますか
「m_strFilter.Format」を使わない理由ありますか
下のコードで参考になりますか
Doc* pDoc = GetDocument();
Set oSet (&pDoc->m_database);
oSet.m_strFilter.Format(COP_ID = %d,m_COP_ID);
if(oSet.Open()) {
if(!oSet.IsEOF()) {
------------------------------------------
必要な編集、表示などのコード
------------------------------------------
}
else{
MessageBox( 検索対象がありません, 利用会社 検索処理, MB_OK );
m_CE_COPID.SetFocus();
}
}
else{
MessageBox( 終了, 利用会社検索 OPEN処理, MB_OK );
}
oSet.Close();
返事ありがとうございます。
でもまだいまいちできないのですが
Set ってなんですか???
とりあえずselect * from 表名 といった
SQL文を実行したいのですが
素人同然なのでよろしくお願いします。
すいませんかき忘れました。
エラーがでるのは、CRecordset のオープンができていないような気がします。
setは自分の読み出しテーブルを定義したCrecordsetのことです
OPEN関数ではなくSQLEXECUTEのような関数あったはずですけど
自宅でないのでこんな回答しか出来ません
いろいろ、すいません。
試しているのですがデーターベースでのコントロールを
するためには、やはりOpen関数を必要になると思ったんですが
そこでエラーになってしまいます。
まだ今日中にやりたいわけではないので、なるべく詳しくお願いします。
ほんとうにすいません。
> bRet = rRS.Open(NULL,select * from emp);
の行に第一引数はNULLを指定できないようですが
MSDNもう一度よく見直してみてはどうでしょうか?
使用例は
rs.Open( CRecordset::dynaset, _T( Select L_Name from Customer ) );
こんなふうになってましたよ
ありがとうございました。なんとかできるようになりました。
まだまだ自分が未熟なのが痛感しました。
これからも、頑張っていきたいです。