1:创建一个简单的存储过程
create procedure UserTable_Store
(
@para0 int,
@para1 varchar(20),
@para2 varchar(20),
@para3 varchar(20),
@para4 varchar(20),
@para5 varchar(20),
@para6 varchar(20)
)as
insert into UserTable(UserNum,UserName,UserSex,UserJob,UserArea,UserWay,UserIndustry)
values(@para0,@para1,@para2,@para3,@para4,@para5,@para6);
2:vc中调用该存储过程
CString strSql;
strSql.Format("call UserTable_Store(%d,'%s','%s','%s','%s','%s','%s')", m0,m1,m2,m3,m4,m5,m6);
theApp.AdoSql(theApp.m_pConnetion,strSql);
请问大家:这里有什么错误啊,调用的时候老是 提示 ‘行’附件有错误。
至于最后一行是对的,我没有用存储过程的时候都可以的,还是这里的数据对应都没关系的(我也就没写了);
这个问题第1个回答:
CString strSql;
strSql.Format("
EXEC UserTable_Store(%d,'%s','%s','%s','%s','%s','%s')", m0,m1,m2,m3,m4,m5,m6);
theApp.AdoSql(theApp.m_pConnetion,strSql);
这个问题第2个回答:
试了 不行啊 郁闷~~~~
高手来顶,别浪费分数啊 !
这个问题第3个回答:
try
:
C/C++ code
CString strSql;
strSql.Format("EXEC UserTable_Store %d,'%s','%s','%s','%s','%s','%s'", m0,m1,m2,m3,m4,m5,m6);
这个问题第4个回答:
都试了不行啊 下面我把theApp.AdoSql(theApp.m_pConnetion,strSql); 的函数贴出来
if(theApp.m_pRecordset->State==adStateOpen)
theApp.m_pRecordset->Close();
try
{
theApp.m_pRecordset->Open((_variant_t)strSql,theApp.m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdStoredProc);
}
catch(_com_error &e)
{
CString err;
err.Format("ADO Error: %s",(char*)e.Description());
AfxMessageBox(err);
}
看看有什么错误!
这个问题第5个回答:
为什么要用m_pRecordset去执行这个存储过程呢?
你的存储过程又不会返回记录。
试一下这样:
(1)
if(theApp.m_pRecordset->State==adStateOpen)
theApp.m_pRecordset->Close();
try
{
theApp.m_pRecordset->Open((_variant_t)strSql,theApp.m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
}
catch(_com_error &e)
{
CString err;
err.Format("ADO Error: %s",(char*)e.Description());
AfxMessageBox(err);
}
这个问题第6个回答:
不行的啊 我最开始也用adCmdText 的
存储过程是不是一般用_commandPtr的啊
这个问题第7个回答:
改用m_pConnection.Execute方法去执行。
这个问题第8个回答:
我这样不可以么 错在哪啊 ?
这个问题第9个回答:
你的存储过程不会返回记录啊!!!
你用recordset去打开干嘛
这个问题第10个回答:
呵呵 可不可以给我个例子 好像m_pConnection.Execute(......)有个参数我不清楚啊,
这个问题第11个回答:
第1个参数是 sql语句串,
第2个参数是sql语句执行後受到影响的行数
最後一个参数你就填adExecuteNoRecords(不返回记录)
这个问题第12个回答:
行数是不是字段的数目啊 我这里就是7 是不是?
这个问题第13个回答:
....
大哥,你不会查msdn吗?
这个问题第14个回答:
没有啊 只是我这台没装 所以~~~~
这个问题第15个回答:
这已经不关数据库的事了,再问可以转到vc版了。
这个问题第16个回答:
睡觉了 明天去公司看下 我这个系统是VISTA 没装 先谢谢你了~~~~
这个问题第17个回答:
大哥,我试了下,数据可以写进去了,但是影响的记录数出错了,结果一运行就报错终止程序了(但是数据还是被写进数据库了),什么原因呢?
我今天做了个小的存储过程试的,我把过程给你看看吧~~~
这个问题第18个回答:
1:建立一个简单的存储过程create proc MeetWay_Procedure
@para1 varchar(20),
@para2 varchar(20)
as
insert into MeetWay(MeetNum,MeetName)
values(@para1,@para2)
2:进行调用
CString StrSql=""Exec MeetWay_Procedure '%s','%s'","1号","朋友"";
VARIANT* CountNum;
try
{
theApp.m_pConnection->Execute((_bstr_t)StrSql,CountNum,adCmdText);
}
catch(_com_error e)
{
........
}
哪错了?第3个参数你和的不一样的,没有你那个参数我查了下,
这个问题第19个回答:
不清楚就下载ado手册看。
看看 recordset.open 和 command.execute 或 connection.execute 各个适用什么情况。
[1] [2] 下一页