zoukankan      html  css  js  c++  java
  • [转载红鱼儿]kbmmw 开发点滴:kbmMW:Unknown property: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'];
  • 相关阅读:
    .net framework缓存遍历
    R语言中统计数据框所有项中的并集
    R语言中在数据框中批量替换指定项
    R语言中 %in%用法
    windows中如何查看端口占用情况、端口是否开启
    R语言中rbind函数和cbind的用法
    linux系统shell实现统计 plink文件基因频率
    linux 系统中实现列转行 及 行转列
    linux系统中向行末添加换行符
    R语言中实现方差和标准差
  • 原文地址:https://www.cnblogs.com/xalion/p/2873753.html
Copyright © 2011-2022 走看看