程序调用存储过程出错
这个是程序
这个是存储过程
USE [pnyy]
GO
/****** Object: StoredProcedure [dbo].[p_bm_book_info] Script Date: 05/20/2017 07:42:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Procedure [dbo].[p_bm_book_info]
@t_isbn varchar(30),
@t_sm varchar(100),
@t_zz varchar(50),
@t_jg decimal(18, 2),
@t_lbbh varchar(2),
@t_cbs varchar(100),
@t_cbrq varchar(10),
@t_sl int
as
declare @rowcount varchar(100)
begin
insert into bm_book_info(isbn,sm,zz,jg,lbbh,cbs,cbrq,sl) values (@t_isbn,@t_sm,@t_zz,@t_jg,@t_lbbh,@t_cbs,@t_cbrq,@t_sl)
select @rowcount=count(sm) from bm_book_info where sm=@t_sm
end
if @rowcount = 1
return 1
else
return @@error
但是从程序中调用是会提示transaction not connected,sql.sqlcode为-1
请问是什么问题?
//string ls_xh
string ls_isbn
string ls_sm
string ls_zz
string ls_jg
string ls_lbbh
string ls_cbs
string ls_cbrq
string li_sl
//ls_xh=sle_1.text
// if ls_xh='' or isnull(ls_xh) then
// MessageBox('系统提示','请正确的输入序号')
// return
// end if
ls_isbn=sle_2.text
if ls_isbn='' or isnull(ls_isbn) then
MessageBox('系统提示','请正确的输入isbn')
return
end if
ls_sm=sle_3.text
if ls_sm='' or isnull(ls_sm) then
MessageBox('系统提示','请正确的输入书名')
return
end if
ls_zz=sle_4.text
if ls_zz='' or isnull(ls_zz) then
MessageBox('系统提示','请正确的输入作者')
return
end if
ls_jg=sle_5.text
if ls_jg='' or isnull(ls_jg) then
MessageBox('系统提示','请正确的输入价格')
return
end if
ls_lbbh=sle_6.text
if ls_lbbh='' or isnull(ls_lbbh) then
MessageBox('系统提示','请正确的输入类别编号')
return
end if
ls_cbs=sle_7.text
if ls_cbs='' or isnull(ls_cbs) then
MessageBox('系统提示','请正确的输入出版社')
return
end if
ls_cbrq=sle_8.text
if ls_cbrq='' or isnull(ls_cbrq) then
MessageBox('系统提示','请正确的输入出版日期')
return
end if
li_sl=sle_9.text
if li_sl='' or isnull(li_sl) or li_sl='0'then
MessageBox('系统提示','请正确的输入数量')
return
end if
dec ld_jg
ld_jg=dec(sle_5.text)
dec ld_sl
ld_sl=dec(sle_9.text)
DECLARE abc_proc1 PROCEDURE FOR p_bm_book_info @t_isbn=:sle_2.text,@t_sm=:sle_3.text,@t_zz=:sle_4.text,@t_jg=:ld_jg,@t_lbbh=:sle_6.text,@t_cbs=:sle_7.text,@t_cbrq=:sle_8.text,@t_sl=:ld_sl;
EXECUTE abc_proc1;
MessageBox('系统提示',SQLCA.SQLCODE)
if SQLCA.SQLCODE =0 THEN
commit;
MESSAGEBOX("提示","保存成功")
else
rollback;
MESSAGEBOX("错误","保存失败,错误代码为 "+ sqlca.sqlerrtext+"'")
return
end if
close abc_proc1;
这个是存储过程
USE [pnyy]
GO
/****** Object: StoredProcedure [dbo].[p_bm_book_info] Script Date: 05/20/2017 07:42:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Procedure [dbo].[p_bm_book_info]
@t_isbn varchar(30),
@t_sm varchar(100),
@t_zz varchar(50),
@t_jg decimal(18, 2),
@t_lbbh varchar(2),
@t_cbs varchar(100),
@t_cbrq varchar(10),
@t_sl int
as
declare @rowcount varchar(100)
begin
insert into bm_book_info(isbn,sm,zz,jg,lbbh,cbs,cbrq,sl) values (@t_isbn,@t_sm,@t_zz,@t_jg,@t_lbbh,@t_cbs,@t_cbrq,@t_sl)
select @rowcount=count(sm) from bm_book_info where sm=@t_sm
end
if @rowcount = 1
return 1
else
return @@error
但是从程序中调用是会提示transaction not connected,sql.sqlcode为-1
请问是什么问题?
...全文
相关推荐
EJB调用存储过程源码
- 错误处理:对存储过程调用进行异常处理,确保在出错时能够适当地回滚事务和报告错误。通过以上内容,你应该对EJB中调用存储过程有了深入的理解。
SQL Server存储过程调用方法的研究.pdf
然而,传统上通过直接指定存储过程名称和提供参数的方法调用存储过程在操作上比较繁琐,尤其在参数比较多的情况下容易出错,并且增加了查错的难度。
数据库存储过程生成代码类工具
然而,当涉及到与存储过程的交互,例如在应用程序中调用这些过程时,通常需要手动编写对应的C#代码来实现这一过程的调用和数据处理。这不仅耗时,而且容易出错。
用C调用mysql数据库的存储过程
在每个可能出错的步骤后,检查`mysql_errno()`和`mysql_error()`以获取错误信息。注意,调用完存储过程后,记得释放所有分配的资源,包括关闭数据库连接。
C#代码生成器,表生成数据实体,生成存储过程调用代码
C#代码生成器"是一种工具,它能够帮助程序员自动化编写常见的代码模板,节省手动编码的时间,提高开发效率。这个工具的核心功能是根据数据库中的表结构自动生成数据实体类和用于调用存储过程的代码。


数据库相关
