zoukankan      html  css  js  c++  java
  • kbmMW 5.08.10试用报告

    1.不兼容Android

    基于5.07的项目,升级到5.08,不能编译android app.已经反应给作者。作者回复将近快发布fixed,修正这个问题及其他发现的问题。

    5.08.01解决了android兼容性问题,可以正常编译app了!

    2.此版支持向下兼容旧版服务器

    这个版本,升级了传输流(transport stream version)的版本到508,以支持传输除接口,对象及内置值(典型的Records)之外的其他基于TValue的数据。新版服务器能够检查并支持旧版本的客户端,可以通过设置将新版本客户端强制为旧版本以支持旧版的服务器。象下面这样调用即可:

    kbmMWNativeHTTPClientTransport1.Params.Values[KBMMW_STREAM_FORMATTER_PARAM_STREAMVERSION]:='506'; //将5.08版本编译的客户端降级为5.06,访问5.06的服务端

    作者在升级说明中有误,没调用Values,按上面方法调用即可,测试通过。

    3.TkbmMWProcess.CreateProcess 问题修正

    测试5.07时遇到的CreateProcess会产生AV错误,现在正常了。发现新的问题:调用cmd,不产生AV但不显示cmd窗口。将这个问题反应给作者后得到了答复,原来我的调用方式不对,要显示cmd窗口,要这样调用:

         TkbmMWProcess.CreateProcess(0,0,0,0,'c:windowssystem32cmd.exe','','',true);
    
         TkbmMWProcess.ExecuteProcess('c:windowssystem32cmd.exe','',0,'',true);

    4.kbmMWTCPServerTransport

    基于CrossSocket修改的Transport,要启用他,此版还需要在kbmMWConfig.inc文件中增加

    {$DEFINE  KBMMW_NATIVETRANSPORT_SUPPORT}
    上版存在的提交大数据包的问题,我做的例子测试通过了!
     
    5.SameFile
    5.08.01解决了这个问题。
     
    6.Resolve在特殊情况返回值错误
    没有解决,重新发给了作者。
    实际上,这个TkbmMWClientTransactionResolver.Resolve方法,应该在开始处设置Result:=False,当所有工作完成后,再设置Result:=True,从而避免没有正确提交时,返回结果为False。不然,在提交前后及提交过程中一但发生异常,都会返回True。
    在作者没修正前,可以用下面的代码实现提交:
    procedure Tmainform.Button5Click(Sender: TObject);
    var
      q1, q2: TkbmMWClientQuery;
      bsf1, bsf2: TkbmMWBinaryStreamFormat;
      ResolveOK: Boolean;
      ErrorMessage: string;
    begin
      ErrorMessage:='';
      q1 := TkbmMWClientQuery.Create(nil);
      q2 := TkbmMWClientQuery.Create(nil);
      bsf1 := TkbmMWBinaryStreamFormat.Create(nil);
      bsf2 := TkbmMWBinaryStreamFormat.Create(nil);
      try
        q1.SessionName := 'Test';
        q2.SessionName := 'Test';
        q1.QueryService := 'QueryService';
        q1.QueryServiceVersion := '1.0';
        q1.TransportStreamFormat:=bsf1;
        q2.QueryService := 'QueryService';
        q2.QueryServiceVersion := '1.0';
        q2.TransportStreamFormat:=bsf2;
    
        q1.TransactionOperation := mwtoExecute;
        q2.TransactionOperation := mwtoExecute;
    
        q1.Query.Text := 'Insert into t1 (fid,fname)         values (''1000'',''aaaa'')';
        q2.Query.Text := 'Insert into t2 (fid,fcustomername) values (''1'',''aaaa'')';
        ResolveOK := False;     //假设提交不成功
        try
           ResolveOK:=kbmMWClientTransactionResolver1.Resolve([q1,q2]);//提交两个数据集,当发生异常时,ResolveOK会为False
        except
           on E:Exception do
           begin
                ErrorMessage:=e.Message;
           end;
        end;
      finally
        if not ResolveOK then //提交失败显示错误信息
        begin
          ShowMessage('提交失败:'+ErrorMessage);
        end;
        bsf1.Free;
        bsf2.Free;
        q1.Free;
        q2.Free;
      end;
    
    end;
     
     
     
     
  • 相关阅读:
    面试收集—hello,world 也有新花样
    div+css优缺点
    css固定textarea文本域尺寸
    Python if __name__ == "__main__":
    ActionScript3.0基础教程
    【转】Flex代码生成器 (FCG)
    手机第一博文
    TabNavigator只初始化第一个TAB 引发的未初始化对象错误
    如何对待懒惰的小孩
    对孩子真诚就是尊重孩子,不要随意表扬
  • 原文地址:https://www.cnblogs.com/kinglandsoft/p/10298011.html
Copyright © 2011-2022 走看看