zoukankan      html  css  js  c++  java
  • kbmMW 5.07.00试用笔记

    kbmMW 5.06.20试用笔记 中遇到的问题,在这个版本中,基本都解决了。但还是发现修正后存在的小问题及新问题:

    1.Resolve返回值错误

    当提交的ClientQuery是执行一条sql语句,如Insert,当发生错误时,如主键重复,则Resolve无法返回正确的结果。具体情况就是在客户端显示异常信息。

        q1.Query.Text:='Insert into t1 (fid,fname)         values (''1000'',''aaaa'')';
        //q2.Query.Text:='Insert into t2 (fid,fcustomername) values (''1'',''aaaa'')';
        tx.StartTransaction;
        tx.TransactionResolver:=kbmMWClientTransactionResolver1;
        try
              ///q1.Execute(tx);
              //q2.Execute(tx);
              tx.AddDataset(q1);
              tx.AddDataset(q2);
              r:=tx.Resolve;//抛出异常,返回结果不对
    ....

    后记:5.08依旧存在这个问题

    2.SameFile

    比较文件是否相同,第一次运行正常,如果继续执行一次,则结果错误。跟踪了一下,发现还是存在5.06.20中的问题,WaitRun不等待线程执行完,直接跳到下一句代码。

    procedure Tmainform.Button5Click(Sender: TObject);
    begin
      if kbmMWFileClient1.SameFile('.\1.png','1.png') then
        ShowMessage('File is same.')//显示这句,比较结果是对的
      else
        ShowMessage('File not same.');
    
      if kbmMWFileClient1.SameFile('.\1.png','1.png') then
        ShowMessage('File is same.')
      else
        ShowMessage('File not same.');//执行这句,比较结果是错的
    
    end;

    后记:5.08.10解决!

    3.kbmMWTCPServerTransport

    kbmMW 5.07.00基于ScrossSocket,实现新的Transport,网友遇到从kbmMWTCPIPIndyServerTransport换成kbmMWTCPServerTransport后,遇到问题。我测试过程如下:

    procedure Tmainform.Button6Click(Sender: TObject);
    var
      i:integer;
    begin
      // 删除所有记录
      kbmMWClientQuery1.Close;
      kbmMWClientQuery1.Open;
      kbmMWClientQuery1.DeleteRecords;
      kbmMWClientQuery1.Resolve;
    
      for i := 1 to 10000 do
      begin
         Label3.Caption:=i.ToString;
         application.ProcessMessages;
         kbmMWClientQuery1.AppendRecord([i, i.ToString]);
      end;
    
      kbmMWClientQuery1.Resolve;
    
    end;

    服务端利用TCPServerTransport时,一次性提交1000条记录成功,变成10000条记录失败;换成TcpipIndyServerTransport,提交10000条记录成功。

    这与xalion所说相符,他说在封装CrossSocket时遇到:就是数据包不能太大

    5.08解决

    4.rest上传文件服务

    测试xalion做的rest服务器,发现无法上传文件,还是xalion威武,在TkbmMWHTTPMimeHeaderValue.GetDelimiter方法中,增加一行搞定:

    function TkbmMWHTTPMimeHeaderValue.GetDelimiter(const AName:string):char;
    begin
         if (AName=KBMMW_HTTP_REQUEST_HEADER_AcceptDatetime) or
            (AName=KBMMW_HTTP_REQUEST_HEADER_Date) or
            (AName=KBMMW_HTTP_REQUEST_HEADER_Expires) or
            (AName=KBMMW_HTTP_REQUEST_HEADER_Cookie) or
            (AName=KBMMW_HTTP_REQUEST_HEADER_IfModifiedSince) or
            (AName=KBMMW_HTTP_REQUEST_HEADER_IfUnmodifiedSince) or
            (AName=KBMMW_HTTP_REQUEST_HEADER_IfRange) or
            (AName=KBMMW_HTTP_REQUEST_HEADER_TE) or
            (AName=KBMMW_HTTP_RESPONSE_HEADER_SetCookie) or
            (AName=KBMMW_HTTP_RESPONSE_HEADER_Date) or
            (AName=KBMMW_HTTP_RESPONSE_HEADER_Expires) or
            (AName=KBMMW_HTTP_RESPONSE_HEADER_RetryAfter) or
            (AName=KBMMW_HTTP_RESPONSE_HEADER_LastModified) or
            (AName=KBMMW_HTTP_RESPONSE_HEADER_ContentType) or
            (AName=KBMMW_HTTP_RESPONSE_HEADER_ContentDisposition)//增加这行
         then
            Result:=';'
         else
             Result:=',';
    end;

    后记:5.12解决,具体在哪一个版本中未知。

    5.TkbmMWProcess.CreateProcess调用一个外部EXE出地址错 误:

    procedure Tmainform.Button1Click(Sender: TObject);
    begin
    
         //ShellExecute(0, 'open', PWideChar(String('SyncLocalDateTime.exe')),'',nil,SW_SHOWNORMAL); //uses Winapi.ShellAPI
         TkbmMWProcess.CreateProcess('.\SyncLocalDateTime.exe','');
    
    end;

    利用ShellExecute调用没有问题,换成CreateProcess则产生地址错 误,已经发给作者。

    作者回复很快,确认并在即将发布的版本中修正。另外我进一步测试,调用windows的CMD也是同样的错误。

    5.08解决

    procedure Tmainform.Button1Click(Sender: TObject);
    begin
    
    //     TkbmMWProcess.CreateProcess('.\Test.exe','');
    
         TkbmMWProcess.CreateProcess('c:\windows\system32\cmd.exe','');
    end;

     6.kbmMWTCPServerTransport

    这是作者新加的基于ScrossSocket修改的Transport,要启用他,需要在inc文件中增加

    {$DEFINE  KBMMW_NATIVETRANSPORT_SUPPORT}
    5.12依旧需要手工填加。
  • 相关阅读:
    HDU 1009 FatMouse' Trade
    HDU 2602 (简单的01背包) Bone Collector
    LA 3902 Network
    HDU 4513 吉哥系列故事——完美队形II
    LA 4794 Sharing Chocolate
    POJ (Manacher) Palindrome
    HDU 3294 (Manacher) Girls' research
    HDU 3068 (Manacher) 最长回文
    Tyvj 1085 派对
    Tyvj 1030 乳草的入侵
  • 原文地址:https://www.cnblogs.com/kinglandsoft/p/10104278.html
Copyright © 2011-2022 走看看