我的程序里adoconnection的事务,和storedprocedure一起这样用可以吗?
这个存储过程里有create table,drop table,select into,insert,update,delete等语句
涉及到很多表,如果启用了事务保护,第一个事务的create table会不会被第二个事务的
drop table 除去?如果我不想让第二个事务在此浪费时间等待,让它一遇到被第一个事务
锁定的对象就立即撤销操作,请问在delphi或者sql里应该怎么解决?
MXSP.Close;
MXSp.ProcedureName := 'USP_MX_TABLE';
mxsp.Parameters.Refresh;
mxsp.Parameters.ParamValues['@cur_mon'] := Agx_cur;
mxsp.Parameters.ParamValues['@last_mon'] := Agx_last;
mxsp.Parameters.ParamValues['@bef_last_mon'] := Agx_bef_last;
mxsp.Prepared := true;
try
adoconnection1.BeginTrans;
Jbmxsp.ExecProc;
adoconnection1.CommitTrans;
except end;
这个存储过程里有create table,drop table,select into,insert,update,delete等语句
涉及到很多表,如果启用了事务保护,第一个事务的create table会不会被第二个事务的
drop table 除去?如果我不想让第二个事务在此浪费时间等待,让它一遇到被第一个事务
锁定的对象就立即撤销操作,请问在delphi或者sql里应该怎么解决?
MXSP.Close;
MXSp.ProcedureName := 'USP_MX_TABLE';
mxsp.Parameters.Refresh;
mxsp.Parameters.ParamValues['@cur_mon'] := Agx_cur;
mxsp.Parameters.ParamValues['@last_mon'] := Agx_last;
mxsp.Parameters.ParamValues['@bef_last_mon'] := Agx_bef_last;
mxsp.Prepared := true;
try
adoconnection1.BeginTrans;
Jbmxsp.ExecProc;
adoconnection1.CommitTrans;
except end;
解决方案 »
- platform 问题求解.
- idftp的下载出错了这个问题老大了
- 如何动态生成汉字,要直接用代码就可以生成的
- 调用table组件的insertrecord插入一条记录之后,怎么获取该条记录的标识列的值?
- sql语句的问题,不知道能不能解决?
- 关于colorbox的简单问题!
- 有没有谁知道dbgrid控件中各个小栅格中某一个小栅格失去焦点时将触发什么时件?
- 如何查找两个表中数值一样的记录如,是两个grid
- 想找份工作,程序员之类的,个人简介在http://solarsoft.126.com,
- 我想在发布时将Bpl安装在指定目录如c:\comm,该如何处理,高手请进
- Delphi程序打包问题
- sql语句的结束位置缺少分号(;)????
adoconnection1.BeginTrans;
Jbmxsp.ExecProc;
adoconnection1.CommitTrans;那么jbmxsp这个存储过程要就全部执行,要就都不执行至于存储过程中的实现,是在服务器端执行的,可能你的存储过程中也会涉及到事务,这种事务的保护也是在被服务器实现的,例如用sql server。【如果启用了事务保护,第一个事务的create table会不会被第二个事务的
drop table 除去?】
第一个事务的create table等一组操作被一个事务保护,他要么就全部执行要就不执行
第二个也一样。你再往后的一些问题,看的实在有点晕,乱七八糟的,你把我带沟里了。
你说的我大部分明白了,但是还有个问题要问清楚一些。。请不要闲我罗唆。。
是不是 第二个 事务要等第一个事务完成后才执行?那么是不是又把第一个事务的操作重复了一遍?我不想让它等,发现不能操作就退出,这在delphi里怎么设置?
在事务中不要用create,truncate,drop 这样的语句,因为事务会自动提交