日期:2014-05-18  浏览次数:20532 次

VC中调用ADO指针执行存储过程无法找到
情况如下:
1)VC写的程序,用ADO指针连接数据库,
2)现在在SQL下有两个数据库A和B,表结构一样,需要将B的数据拷贝到A中,可以拷贝成功,
3)具体的拷贝执行是A中的存储过程1,
4)执行成功后,再次程序调用A中存储过程1,执行拷贝,但是失败,因为需要将B中主键值也拷贝过来,而A中已经有相同的数据。

现在想要解决这个情况,思路是这样的:
1)再每次从B拷贝数据到A中之前,先将A还原一遍,以保证A中没有数据。
2)但是每次操作的时候,先成功还原A后清空了A的数据,但是再次在VC代码中ADO调用A中存储过程1拷贝的时候,Exctue一执行就到Catch语句中,Messagebox报错是找不到存储过程1,
3)但是在SQL管理器中查看,A中是有1的。
4)如果取消先将A还原一遍的步骤,在VC代码中ADO调用A中存储过程1拷贝就成功了。
请问是什么问题造成的?谢谢各位!

------解决方案--------------------
有点饶.

如果实在不行,可以先检查存储过程是否存在.

if exists(select 1 from sysobjects where type='P' and name = '存储过程1')
执行存在过程
else
存储过程不存在