VB 调用SQL2000 存储过程异常捕获
- VB code
Private Sub Command1_Click() Dim cmd As New ADODB.Command Dim sql As String sql = "SP_INSERT" cmd.ActiveConnection = g_conn cmd.CommandType = adCmdStoredProc cmd.CommandText = sql cmd.Execute Set cmd = NothingEnd Sub
- SQL code
CREATE PROCEDURE SP_INSERT ASINSERT INTO t_A SELECT 'a' --t_A正常可以插入INSERT INTO t_B SELECT 'a' --t_B不存在 应该报错的
执行结果VB没有报错,有什么办法抛出异常
[解决办法]
应该在存储过程中处理错误,VB中取返回值....
[解决办法]
给你个例子
CREATE OR REPLACE PROCEDURE "ZZ_TMP" (SMsg in string)
as
ERROR_MSG VARCHAR2(200);
BEGIN
--添加业务代码
......
COMMIT;
-- 出错处理
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
ERROR_MSG := SUBSTR(SQLERRM,1,150);
SMsg := SUBSTR(SQLERRM,1,150);
INSERT INTO TM_ERROR_INFO VALUES('ZZ_TMP',SYSDATE,ERROR_MSG);
END;
[解决办法]
[解决办法]
你可以多尝试几种语言试试,有时候靠大腿都能想明白的事
[解决办法]
这个问题和编程语言无关,程序都是通过数据库引擎访问数据库的,你引用的是ADO,这应该和ADO相关....
只能说,存储过程中没有错误处理,用起来是很危险的...
存储过程,很高效的东西,可想说爱你不容易...我写系统从来不用