[转载红鱼儿]kbmmw 开发点滴:kbmMW:Unknown property:indexes

简介: 利用kbmMW的QueryServices,对数据集进行提交,当改用JSON格式时,客户端提交时,会产生这个错误,明明已经更新数据库,也产生这个错误!如果换成Bin格式,则正常。 能过查看kbmMWJSONStreamFormat单元,问题产生在这行代码:nIndexDefs:=nDefs.AsArray['indexes']; 可以这样理解: 客户端提交数据后,服务器会返回一个错误结果数据集,不管有无错误,都要返回这个结果集。

利用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'];
目录
相关文章
|
9月前
工银e生活开发脱坑日志(7)Missing argument 6 for IcbcSignature::verify()
工银e生活开发脱坑日志(7)Missing argument 6 for IcbcSignature::verify()
26 0
|
数据采集 Python
|
前端开发
前端工作总结230-Duplicate keys detected
前端工作总结230-Duplicate keys detected
85 0
前端工作总结230-Duplicate keys detected
SAP MM在ML81N事务代码界面报错- Customizing incorrectly maintained –之对策
SAP MM在ML81N事务代码界面报错- Customizing incorrectly maintained –之对策
SAP MM在ML81N事务代码界面报错- Customizing incorrectly maintained –之对策
|
存储 XML 数据库
艾伟:ORM With Versioning Control
  在一些场合,我们可能需要对业务实体进行版本控制。类似于源码管理工具一样,可以查看历史版本,可以回滚,可以Lock,一个业务实体对象,同一时刻只允许一个人进行更新操作。为了实现信息的可追溯性,这些功能应该是必不可少的。
777 0
[three.js] 解決貼圖無法重複的問題 Solving with Texture RepeatWrapping Fail Issue
有些东西,你想找的时侯,怎么也找不到, 而有些东西,不经意间,随处可见; 本以为这是生活中常见的事情, 然而在浩瀚的互联大海中,也是如此。 平时的积累是为了一时之需, 几分钟的投入, 积累起来, 也会成为汪洋大海, 载起一帆小舟, 不至搁浅。
1144 0
|
关系型数据库 MySQL PHP
【不积跬步,无以致千里】安装roundcube 时出现 “DSN (write): NOT OK(SQLSTATE[HY000] [2002] No such file or directory)”
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为“中国PE第一股”,市值超1000亿元。
1210 0
|
索引
【TDS学习文档5】IBM Directory schema的管理3——attributes
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 每个目录入口都有一组与其object class相伴的属性。IBM TDS将数据表示为名字-值这样的对儿,一个描述性属性,比如commonName(cn),或一个特定的信息,比如John Doe这个名字。
924 0