KBEngine.executeRawDatabaseCommand使用
先贴一段官方的API介绍:
def executeRawDatabaseCommand( command, callback, threadID, dbInterfaceName ):
这个脚本函数在数据库上执行原始数据库命令,该命令将直接由相关数据库进行解析。
请注意使用该函数修改实体数据可能不生效,因为如果实体已经检出,被修改过的实体数据将仍会被实体存档而导致覆盖。
强烈不推荐这个函数用于读取或修改实体数据。
参数:
command | 这个数据库命令将会因为不同数据库配置方案而不同。对于方案为MySQL数据库它是一个SQL查询语句。 |
callback |
可选参数,带有命令执行结果的回调对象(比如说是一个函数)。这个回调带有4个参数:结果集合,影响的行数,自増长值,错误信息。 如同上面的例子所示,result参数对应的就是“结果集合”,这个结果集合参数是一个行列表。 rows参数则是“影响的行数”,它是一个整数,表示命令执行受影响的行数。这个参数只和不返回结果结合的命令(如DELETE)相关。 insertid对应的是“自増长值”,类似于实体的databaseID,当成功的向一张带有自増长类型字段的表中插入数据时,它返回该数据在插入时自増长字段所被赋于的值。 error则对应了“错误信息”,当命令执行有错误时,这个参数是一个描述错误的字符串。命令执行没有发生错误时这个参数为None。 |
threadID | int32,可选参数,指定一个线程来处理本条命令。用户可以通过这个参数控制某一类命令的执行先后顺序(dbmgr是多线程处理的),默认是不指定,如果threadID是实体的ID, 那么将加入到该实体的存档队列中由线程逐条写入。 |
dbInterfaceName | string,可选参数,指定由某个数据库接口来完成, 默认使用"default"接口。数据库接口由kbengine_defs.xml->dbmgr->databaseInterfaces中定义。 |
其中有几个值得注意的地方:
command参数:SQL查询语句,but不支持连续sql语句,不支持事务机制,不支持存储过程,不支持获取自增id(请使用回调中的insertid(注意这个参数的类型是NoneType))
callback:回调函数,注意闭包就行;error错误信息最好自己去处理一下
KBEngine.executeRawDatabaseCommand使用的更多相关文章
- 让我们把KBEngine玩坏吧!如何定制我们自己的C++函数(一)
为什么不更新kbe warring的代码解读了,因为在我看来那个demo讲完了实体就没东西可讲了,如果专心的看官方文档和PPT的话demo的代码后面没任何难点了已经,单纯的复制黏贴代码实在太过无聊.程 ...
- kbengine里如何使用git快速下载项目?
项目有两个镜像,github[https://github.com/kbengine/kbengine.git] ,osc开源中国[https://git.oschina.net/likecg/kbe ...
- kbengine mmo源码(完整服务端源码+资源+完整客户端源码)
本项目作为kbengine服务端引擎的客户端演示而写 更新kbengine插件库(https://github.com/kbengine/kbengine_unity3d_plugins): ...
- kbengine Unity3d demo 代码执行流程(4)
当服务端成功启动,客户端链接服务端后进入demo中的游戏界面,demo中的功能包括注册.登录.角色管理.战斗.场景等等. 对于新接触kbengine的人,看见客户端的代码后会觉得很迷茫,有些无从下手. ...
- kbengine FAQ(3)
官方FAQ 下面是我遇到的一些问题: 1.服务端 "strtof" 未定义的标示符 对于我这个c++入门级都不算的新手,这个错误很挠头,这个错误是由于vc++版本问题,新版的语 ...
- kbengine环境搭建(2)
做好准备工作后,可以开始搭建我们的kbengine服务端,运行成功kbengine服务端,共有9个服务会相应的被打开,并会全部提示[info]found all components! 准备工作 1. ...
- kbengine简单介绍(1)
什么是kbengine? 一款开源的游戏服务端引擎,客户端通过简单的约定协议就能与服务端通讯, 使用KBEngine插件能够快速与(Unity3D, OGRE, Cocos2d-x, HTML5, 等 ...
- KBEngine WebConsole Guide
https://github.com/kbengine/kbengine/tree/master/docs
- KBEngine简单RPG-Demo源码解析(3)
十四:在世界中投放NPC/MonsterSpace的cell创建完毕之后, 引擎会调用base上的Space实体, 告知已经获得了cell(onGetCell),那么我们确认cell部分创建好了之后就 ...
随机推荐
- RHCE7 管理II-5管理进程的优先级
进程的优先级值称为进程的nice值,共有40种不同的取值(用数字-20到19表示) nice值越大,表示进程的优先级越低. 进程的nice值,只允许root用户来设置负的nice:其他用户只允许设置正 ...
- PO_员工主管审批模式详解(设定)
2014-06-03 Created By BaoXinjian
- 《TCP/IP具体解释卷2:实现》笔记--选路请求和选路消息
内核的各种协议并不直接使用前面提供的函数来訪问选路树,而是调用几个函数:rtalloc和rtallocl是完毕路由表查询的两个 函数:rtrequest函数用于加入和删除路由表项:另外大多数接口在接口 ...
- Googleplay从服务器检索信息时出错。[DF-DFERH-01]
googleapis.cn services.googleapis.cn 两个地址强制走代理就OK了.
- 使用PL/Scope分析PL/SQL代码
使用PL/Scope分析你的PL/SQL代码 从11g開始Oracle引入了PL/Scope 用于编译器收集PL/SQL程序单元的全部标识符(变量名.常量名.程序名等). 收集到的信息可通过一系列静态 ...
- mkdir命令的-p和-m
mkdir命令是常用的命令,用来建立空目录,它还有2个常用参数: -m, --mode=模式 设定权限 (类似 chmod),而不是 rwxrwxrwx 减 umask -p, --parents 需 ...
- qsort函数以及sort函数使用方法
sort函数的使用方法 做ACM题的时候,排序是一种常常要用到的操作. 假设每次都自己写个冒泡之类的O(n^2)排序,不但程序easy超时,并且浪费宝贵的比赛时间,还非常有可能写错. STL里面 ...
- windows下git bash中文乱码解决办法
一.解决办法1:(直接上图) 1.在git bash下,右键 出现下图,选择options: 2.选择“Text” 3.将“Character set”设置为 UTF-8 转:windows下git ...
- android studio - 暂停AndroidStudio中的Git
解决办法 AndroidStudio 打开 Setting>Plugins 找到Git Integer 取消插件(将右边钩钩去掉) restart AndroidStudio done
- CCRepeatForever和CCDelayTime
有限次执行一组动作和无限次执行一组动作 void ActionRotateJerk::onEnter() { ActionsDemo::onEnter(); centerSprites(); CCFi ...