如何在VFP里写SQL Server的事务处理

 我来答
huanglenzhi
推荐于2016-06-08 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517174
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
*********************************************************************************
Transactions_error=.f. &&事务过程失败标志
= SQLSETPROP(myconnect, ‘Transactions’, 2)  &&启动手动事务处理
**————————————————————
TEXT TO sql_tmp1 NOSHOW
    INSERT INTO amt_bum(id_bum, bum_bh)
    values (?id_bum, ?bum_bh)
    IF (SELECT count(1) FROM amt_bum WHERE bum_bh = ?bum_bh) > 1
SELECT 9 as ok
    ELSE
SELECT 1 as ok
ENDTEXT
**————————————-
IF Transactions_error=.F.
    SELECT My_mt_bum_fm_bum
        IF sqlexec(myconnect,sql_tmp1,’My_mt_bum_fm_my_int_tm’)<=0
            WAIT WINDOW "新增部门资料失败!" NOWAIT
            Transactions_error=.t.
      ELSE 
     SELECT My_mt_bum_fm_my_int_tm
         DO case 
         CASE ok = 1
             **正常
         CASE ok = 9
             MESSAGEBOX("此部门有重复不允许存盘!","")
             Transactions_error=.t.
         ENDCASE 
     use
        ENDIF
ENDIF
**————————————-
IF Transactions_error=.t.
    =SQLROLLBACK(myconnect)
ELSE
    =SQLCOMMIT(myconnect)
    WAIT WINDOW "数据存盘成功!" NOWAIT
ENDIF
= SQLSETPROP(myconnect, ‘Transactions’, 1) &&恢复自动事务处理
*********************************************************************************
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式