SQL呼び出し
Posted: 2007年11月03日(土) 18:50
以下の文でSQLServer2005のストアドプロシジャの呼び出しを行うと
「カーソルの状態が正しくありません」のエラーになりうまく動きません。
SQLServerでパラメータを指定して実行すると正しく動作します。
わけがわからずに困っています。どなたかわかる方お願いします。
VC側
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
CString strSql;
//実行SQL生成
CString strCon = Dll_GetDefaultDatabase();
CDatabase db;
//接続
db.OpenEx( _T( strCon ), CDatabase::noOdbcDialog );
//実行
CRecordset rs( &db );
strSql.Format("{call PROC_EKonyu('%d', '%d', 1)}", y-1, y-2);
try {
rs.Open( CRecordset::snapshot, strSql);
}
catch(CDBException* e) {
CString Msg = e->m_strError;
AfxMessageBox(Msg);
return;
}
rs.Close();
db.Close();
ストアドプロシジャ
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
PROCEDURE [PROC_EKony[/url]
@m_stYear varchar(4),
@m_edYear varchar(4),
@m_Syori int
As
SET NOCOUNT ON
IF @m_Syori = 1 BEGIN
delete from dEKonyu where Ed_Year = @m_stYear
delete from dEKonyu where Ed_Year = @m_edYear
END
「カーソルの状態が正しくありません」のエラーになりうまく動きません。
SQLServerでパラメータを指定して実行すると正しく動作します。
わけがわからずに困っています。どなたかわかる方お願いします。
VC側
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
CString strSql;
//実行SQL生成
CString strCon = Dll_GetDefaultDatabase();
CDatabase db;
//接続
db.OpenEx( _T( strCon ), CDatabase::noOdbcDialog );
//実行
CRecordset rs( &db );
strSql.Format("{call PROC_EKonyu('%d', '%d', 1)}", y-1, y-2);
try {
rs.Open( CRecordset::snapshot, strSql);
}
catch(CDBException* e) {
CString Msg = e->m_strError;
AfxMessageBox(Msg);
return;
}
rs.Close();
db.Close();
ストアドプロシジャ
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
PROCEDURE [PROC_EKony[/url]
@m_stYear varchar(4),
@m_edYear varchar(4),
@m_Syori int
As
SET NOCOUNT ON
IF @m_Syori = 1 BEGIN
delete from dEKonyu where Ed_Year = @m_stYear
delete from dEKonyu where Ed_Year = @m_edYear
END