教程学院
图像设计 多媒体类 机械制图 办公软件 操作系统 系统编程 网站编程 网页制作 数据库类 网络路由 网络工程 网络安全 考试认证
firefox火狐浏览器下载
酷网学院
CAD
AutoCad Cam350 ProEngineer GCcam MATLAB Unigraphics SolidWorks CAXA Solid3000 Cimatron EdgeCAM
系统
安全 防火墙 病毒 WinXP Win2003 Vista
数据库
编程
网络
精彩图库
  当前位置: 库库中文网 · 数据库类教程 · MSSQL教程 · MsSql综合技巧

VC调用存储过程出错,求救~~~

 
学院最新推荐文章
PS教程推荐
 
『VC调用存储过程出错,求救~~~』如果文章有大量图片,显示会较慢,请等待图片下载完成
 
作者:shengliz 来源:C.S.D.N 点击数: 更新时间:2008-7-21 
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个回答:
引用 11 楼 Garnett_KG 的回复:
第1个参数是 sql语句串,
第2个参数是sql语句执行後受到影响的行数

最後一个参数你就填adExecuteNoRecords(不返回记录)


大哥,我试了下,数据可以写进去了,但是影响的记录数出错了,结果一运行就报错终止程序了(但是数据还是被写进数据库了),什么原因呢?
我今天做了个小的存储过程试的,我把过程给你看看吧~~~
这个问题第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] 下一页  

】【关闭窗口
·上页:
·下页:
相关文章
 
     数据库类教程 - MsSql综合技巧
普通教程SQL Server 2008升级顾问
普通教程迁移 Reporting Services
普通教程SQL Server 2008升级报表服务器
普通教程SQL Server 2008 升级Reporting
普通教程SQL Server 2008示例之奥地利广
普通教程SQL Server 2008 示例之微软IT部
普通教程SQL Server 2008示例之日立咨询
普通教程SQL Server2008示例之CyberSavv
普通教程SQL Server 2008示例之CareGrou
普通教程微软商业智能技术详细解说
普通教程通过数据说明和生成报表整合企业
advertisement
关于站点 - 广告服务 - 联系我们 - 版权隐私 - 免责声明 - 合作伙伴 - 程序支持 - 网站地图 - 返回顶部
网站文本地图
版权所有:库库中文 2005-2007 欢迎各种媒体转载我们的原创作品[转载请注明出处]
copyright © 2005-2008 www.QQGB.com online services. all rights reserved. 蜀ICP备05015578
Template designed by Virus. Optimized for 1024x768 to Firefox,Opera and MS-IE6. Site powered by EQL.
红盾
热爱电脑,热爱生活
拥有电脑,拥有生命
让我们享受拥有电脑的时光