DatabaseLibrary一个令人疑惑的问题

知道原因了,是英语水平太low。。。 sansTran的前缀sans是无的意思。。。  文档应该翻译成设置为True时,不再调用commit和rollback了

 

在robotframework中使用 DatabaseLibrary时,有个参数令我很疑惑,它就是 sansTran,这个参数在很多地方出现,它的解释是

Set optional input
`sansTran` to True to run command without an explicit transaction
commit or rollback.

我的理解是,当这个参数设置为True时,不用在显式的调用commit和rollback。  但是其实现代码如下,以

execute_sql_string为例:
    def execute_sql_string(self, sqlString, sansTran=False):
        """
        Executes the sqlString as SQL commands  and returns number of rows
        affected. Useful to pass arguments to your sql. Set optional input
        `sansTran` to True to run command without an explicit transaction
        commit or rollback.

        SQL commands are expected to be delimited by a semi-colon (';').

        For example:
        | Execute Sql String | DELETE FROM person_employee_table; DELETE FROM person_table |

        For example with an argument:
        | Execute Sql String | SELECT * FROM person WHERE first_name = ${FIRSTNAME} |

        Using optional `sansTran` to run command without an explicit transaction commit or rollback:
        | Execute Sql String | DELETE FROM person_employee_table; DELETE FROM person_table | True |
        """
        cur = None
        result = 0
        try:
            cur = self._dbconnection.cursor()
            logger.info('Executing : Execute SQL String  |  %s ' % sqlString)
            result = self.__execute_sql(cur, sqlString)
            if not sansTran:
                self._dbconnection.commit()
        finally:
            if cur:
                if not sansTran:
                    self._dbconnection.rollback()
        return result

可以看到,只有当sansTran为False时,才会自动commit或者rollback。

 

是我理解错了,还是文档写的有问题呢????

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值