老兄我用的sql server2000是在pb调用
解决方案 »
- mssql调用数据库的存储存储,产生死锁
- mysql语句转成 Sqlserver语句? limit m,n 转为 top m-n
- 在select 语句中 用 max 时碰到的问题,请各位高人指点指点
- 嵌套查询加聚合函数
- 狙击手,苦行僧.......等高手进来看看
- 一个表的记录之间的日期间隔怎么取,太难了,请求SQL高手支援!!!
- 有A和B两台服务器,A上有存储过程A1.如何在B上调用A1(我没分)
- 关于如何在trigger中得到,被触发记录的ID号?
- pb6.5和sql server的问题?
- SQLSERVER2008 连接服务器数据库报错
- 用存储过程怎样从一个表中复制另一个表满足条件的字段(急用)
- 用VB.NET和SQL做的数据库应用程序应怎么做安装文件?
我觉得综合考虑,存储过程中最好是多条sql语句
当然了,如果一条也可以,只要你愿意
select 操作只会有共享锁
如果SQL SERVER对一个资源使用了共享锁,即使第一个事务还没有完成,第二个事务也可以获得共享锁.
也就是说select 不可能会造成死锁
sqlca.autocommit = true执行完成后,设回来
sqlca.autocommit = false
试试吧
我的连接语句sqlca.autocommit = false
declare pr_yjhj procedure for dt_yjhj :h_b.bah_1;
execute pr_yjhj;
con_1=sqlca.sqlcode
if con_1<>0 then
messagebox("数据库连接失败","不能连到SQL SERVER里"+"错误信息为:"+sqlca.sqlerrtext+"请稍后重试")
return
end if
fetch pr_yjhj into :h_b.yj_1;
close pr_yjhj;
上面是存储的调用确实我现在真的很迷茫要不要把我的存储改过来并且我的查询表只用10多万条记录查询时感觉光标要打转几秒.谢谢大家指点
或者每一个语句后都要加 事务提交的语句
或者每一个语句后都要加 事务提交的语句
//////////////////////////
如果将autocommit设置为on呢
或者每一个语句后都要加 事务提交的语句
////////////////////
我有点不懂你的意思能详解吗
@cy_bah varchar(9),
@cy_cwh varchar(10),
@cy_ksmc varchar(10),
@cy_czy varchar(10),
@cy_yj money,
@cy_return int output,
@cy_err varchar(20) output
as
DECLARE @er_h int
SET @er_h=0
begin tran t1
update cw set sy='1' where cwh=@cy_cwh and ksmc=@cy_ksmc
SET @er_h=@@error
if @er_h<>0
begin
rollback tran t1
SET @cy_return= 1
SET @cy_err= "在进行床位更新时出错"
return
end
update brk set 当前状态="3",出院日期=getdate(),出院办理员=@cy_czy where 住院号=@cy_bah;
SET @er_h=@@error
if @er_h<>0
begin
rollback tran t1
SET @cy_return = 1
SET @cy_err= "在进行病人停息表更新时出错"
return
end
if @cy_yj<>0
begin
insert into yj(住院号,押金金额,操作员,押金说明) values(@cy_bah,@cy_yj,@cy_czy,'出院预交');
SET @er_h=@@error
if @er_h<>0
begin
rollback tran t1
set @cy_return = 1
set @cy_err="在进行押金更新时出错"
return
end
end
commit tran t1
SET @cy_return= 0
GO
这是我多表提交的存储没有出现错误感觉学是慢不知怎么的.