博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
KBEngine.executeRawDatabaseCommand使用
阅读量:4957 次
发布时间:2019-06-12

本文共 1296 字,大约阅读时间需要 4 分钟。

先贴一段官方的API介绍:

 

def executeRawDatabaseCommand( command, callback, threadID, dbInterfaceName ):

功能说明:
这个脚本函数在数据库上执行原始数据库命令,该命令将直接由相关数据库进行解析。
请注意使用该函数修改实体数据可能不生效,因为如果实体已经检出,被修改过的实体数据将仍会被实体存档而导致覆盖。
强烈不推荐这个函数用于读取或修改实体数据。

参数:

 

command 这个数据库命令将会因为不同数据库配置方案而不同。对于方案为MySQL数据库它是一个SQL查询语句。
callback

可选参数,带有命令执行结果的回调对象(比如说是一个函数)。这个回调带有4个参数:结果集合,影响的行数,自増长值,错误信息。

声明样例:
def sqlcallback(result, rows, insertid, error):
    print(result, rows, insertid, error)
如同上面的例子所示,result参数对应的就是“结果集合”,这个结果集合参数是一个行列表。 每一行是一个包含字段值的字符串列表。
命令执行没有返回结果集合(比如说是DELETE命令), 或者 命令执行有错误时这个结果集合为None。
rows参数则是“影响的行数”,它是一个整数,表示命令执行受影响的行数。这个参数只和不返回结果结合的命令(如DELETE)相关。
如果有结果集合返回或者命令执行有错误时这个参数为None。

insertid对应的是“自増长值”,类似于实体的databaseID,当成功的向一张带有自増长类型字段的表中插入数据时,它返回该数据在插入时自増长字段所被赋于的值。

更多的信息可以参阅mysql的mysql_insert_id()方法。另外,此参数仅在数据库类型为mysql时有意义。
error则对应了“错误信息”,当命令执行有错误时,这个参数是一个描述错误的字符串。命令执行没有发生错误时这个参数为None。

threadID int32,可选参数,指定一个线程来处理本条命令。用户可以通过这个参数控制某一类命令的执行先后顺序(dbmgr是多线程处理的),默认是不指定,如果threadID是实体的ID,
那么将加入到该实体的存档队列中由线程逐条写入。
dbInterfaceName string,可选参数,指定由某个数据库接口来完成, 默认使用"default"接口。数据库接口由kbengine_defs.xml->dbmgr->databaseInterfaces中定义。

 

其中有几个值得注意的地方:

  command参数:SQL查询语句,but不支持连续sql语句,不支持事务机制,不支持存储过程,不支持获取自增id(请使用回调中的insertid(注意这个参数的类型是NoneType))

  callback:回调函数,注意闭包就行;error错误信息最好自己去处理一下

 

  

  

转载于:https://www.cnblogs.com/kefeiGame/p/8662819.html

你可能感兴趣的文章
latex模板
查看>>
UCDOS点阵字库
查看>>
基于ARM的射频识别读卡器电路设计
查看>>
(转载)FPGA工程师:持守梦想or屈于现实
查看>>
15、Work原理及源码分析
查看>>
福大软工1816 · 第五次作业 - 结对作业2
查看>>
vue做的简单购物车
查看>>
算法总结
查看>>
后台自定义导航增加分类树N级下拉+利用JQUERY
查看>>
python导包的问题
查看>>
QTP 捕获对象模式切换
查看>>
poi操作Excel相关对象属性介绍及中级应用
查看>>
mysql数据类型
查看>>
1.MyBaits无代理全套增删改
查看>>
spring(二)
查看>>
Oracle的汉字转拼音首字母的函数
查看>>
排序算法
查看>>
GAN生成图像论文总结
查看>>
(转)让ubuntu9.10开机自动挂载NTFS分区
查看>>
presentModalViewController 的动画效果
查看>>