小弟在vc中调用存储过程add_admin
存储过程代码如下:PROC add_admin
@id char(20),
@password char(10)
AS
INSERT INTO administrator
(administrator_id, administrator_password)
VALUES
(@id, @password)
存储过程在sql server下运行无错
vc中继承下来的CRecordset没有改动,绑定数据列id char(20), password char(10),不论选取dynaset 还是snapshot,
view继承自CFormView,在里面添加button,并响应单击事件代码如下:
void CMyView::Button()
{
CMyset cset;
cset.Open(AFX_DB_USE_DEFAULT_TYPE,"{call add_admin('safaffa', 'jjj')}");
cset.Close(); }
运行后发现记录已经添加进数据库,但是发生异常!!
发生异常的代码在RFX_TEXT()中case CFieldExchange::BindFieldToColumn:
{
// Assumes all bound fields BEFORE unbound fields
CODBCFieldInfo* pODBCInfo =
&pFX->m_prs->m_rgODBCFieldInfos[nField - 1];
该行停止-----------------UINT cbColumn = pODBCInfo->m_nPrecision;不知道是怎么回事,另外请各位大哥知道怎样在vc调用带输出参数的存储过程的贴出具体方法!!谢谢了
存储过程代码如下:PROC add_admin
@id char(20),
@password char(10)
AS
INSERT INTO administrator
(administrator_id, administrator_password)
VALUES
(@id, @password)
存储过程在sql server下运行无错
vc中继承下来的CRecordset没有改动,绑定数据列id char(20), password char(10),不论选取dynaset 还是snapshot,
view继承自CFormView,在里面添加button,并响应单击事件代码如下:
void CMyView::Button()
{
CMyset cset;
cset.Open(AFX_DB_USE_DEFAULT_TYPE,"{call add_admin('safaffa', 'jjj')}");
cset.Close(); }
运行后发现记录已经添加进数据库,但是发生异常!!
发生异常的代码在RFX_TEXT()中case CFieldExchange::BindFieldToColumn:
{
// Assumes all bound fields BEFORE unbound fields
CODBCFieldInfo* pODBCInfo =
&pFX->m_prs->m_rgODBCFieldInfos[nField - 1];
该行停止-----------------UINT cbColumn = pODBCInfo->m_nPrecision;不知道是怎么回事,另外请各位大哥知道怎样在vc调用带输出参数的存储过程的贴出具体方法!!谢谢了
CDatabase::ExecuteSQL("....")调用
因为没有记录集返回,所以出错
CDatabase db;
db.Open(...);
s.Format("add_admin '%s','%s'","aa","111");
db.ExecuteSQL(s);
TRY
{
cset.Open(AFX_DB_USE_DEFAULT_TYPE,"{call add_admin('safaffa', 'jjj')}");
}
CATCH_ALL(e)
{
}
END_CATCH_ALL
关于怎样在vc调用带输出参数的存储过程我现在正在苦恼中,如果你有了答案告诉我好吗?
http://expert.csdn.net/Expert/topic/1726/1726729.xml?temp=.7379572