[转载红鱼儿]kbmmw 开发点滴:kbmMW:Unknown property:indexes
2013-01-23 20:22
148 查看
利用kbmMW的QueryServices,对数据集进行提交,当改用JSON格式时,客户端提交时,会产生这个错误,明明已经更新数据库,也产生这个错误!如果换成Bin格式,则正常。
能过查看kbmMWJSONStreamFormat单元,问题产生在这行代码:
nIndexDefs:=nDefs.AsArray['indexes'];
可以这样理解:
客户端提交数据后,服务器会返回一个错误结果数据集,不管有无错误,都要返回这个结果集。客户端会把这个数据集加载到
ClientQuery.ErrorTable中,然后能过这个ErrorTable来处理错误。当加载时,用的JSON格式传输数据,则在这个JSON
中无没有indexes信息,正因为没有,所以执行上面的代码,就发出了异常。
为什么,返回的JSON流中,没有indexes,进一步跟踪代码,会看到所在传输格式的基类TkbmMWCustomStreamFormat
中,执行了这行代码:
sfIndexDef:=[],
这行代码,说明在生成JSON时,不保存数据集的index定义,
在memTable的TkbmCustomStreamFormat类中:
sfIndexDef:=[sfSaveIndexDef,sfLoadIndexDef];
这行代码,说明在生成JSON时,保存index定义。
TkbmMWCustomStreamFormat继承TkbmCustomStreamFormat,对基本的行为作了这样的修改。为什么?
我想是这样:对于内存表,保存与加载JSON数据,需要有Index信息,而对于kbmMW,在客户端与服务器传输数据流时,不需要有index。
通过上面分析,在这句前加一个条件判断,就可以避免此错误的产生。
nIndexDefs:=nDefs.AsArray['indexes'];
能过查看kbmMWJSONStreamFormat单元,问题产生在这行代码:
nIndexDefs:=nDefs.AsArray['indexes'];
可以这样理解:
客户端提交数据后,服务器会返回一个错误结果数据集,不管有无错误,都要返回这个结果集。客户端会把这个数据集加载到
ClientQuery.ErrorTable中,然后能过这个ErrorTable来处理错误。当加载时,用的JSON格式传输数据,则在这个JSON
中无没有indexes信息,正因为没有,所以执行上面的代码,就发出了异常。
为什么,返回的JSON流中,没有indexes,进一步跟踪代码,会看到所在传输格式的基类TkbmMWCustomStreamFormat
中,执行了这行代码:
sfIndexDef:=[],
这行代码,说明在生成JSON时,不保存数据集的index定义,
在memTable的TkbmCustomStreamFormat类中:
sfIndexDef:=[sfSaveIndexDef,sfLoadIndexDef];
这行代码,说明在生成JSON时,保存index定义。
TkbmMWCustomStreamFormat继承TkbmCustomStreamFormat,对基本的行为作了这样的修改。为什么?
我想是这样:对于内存表,保存与加载JSON数据,需要有Index信息,而对于kbmMW,在客户端与服务器传输数据流时,不需要有index。
通过上面分析,在这句前加一个条件判断,就可以避免此错误的产生。
nIndexDefs:=nDefs.AsArray['indexes'];
相关文章推荐
- [转载红鱼儿]kbmmw 开发点滴:Authorization failed.
- [转载红鱼儿]kbmmw 开发点滴:QueryService运行机制
- [转载红鱼儿]kbmmw 开发点滴:kbmMW在事务中批量执行SQL
- [转载红鱼儿]kbmmw 开发点滴:kbmMWEventService的本质
- [转载红鱼儿]kbmmw 开发点滴:kbmMW客户端提交事务的现场处理
- [转载红鱼儿]kbmmw 开发点滴:kbmMW 命名查询(Named Query)
- [转载红鱼儿]kbmmw 开发点滴:ErrorTable用法
- [转载红鱼儿]kbmmw 开发点滴:kbmMW数据集流化
- [转载红鱼儿]kbmmw 开发点滴:kbmWTCPIPInfyClientTransport联接状态
- [转载红鱼儿]kbmmw 开发点滴:kbmMW默认服务
- [转载红鱼儿]kbmmw 开发点滴:kbmMWQuery插入记录
- [转载红鱼儿]kbmmw 开发点滴:kbmMW缓存机制
- [转载红鱼儿]kbmmw 开发点滴:TkbmMWLock用法
- [转载红鱼儿]kbmmw 开发点滴:解决QueryService重复查询问题
- [转载红鱼儿]kbmmw 开发点滴:kbmmW服务端事务控制
- [转载红鱼儿]kbmmw 开发点滴:EarlyAuthentication
- [转载红鱼儿]kbmmw 开发点滴:There be must at least one field
- [转载红鱼儿]Delphi实现微信开发(3)如何使用multipart/form-data格式上传文件
- [转载红鱼儿]delphi 实现微信开发(1)
- [转载红鱼儿]delphi 实现微信开发(2)接入微信公众号平台