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 := to 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.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.08依旧需要手工填加。

kbmMW 5.07.00试用笔记的更多相关文章

  1. kbmMW 5.06.20试用笔记

    1.kbmMWConfiguration自动备份配置文件的问题还没有修正. 下面是以前写过的内容,再一次在新闻组中提出这个问题: kbmMW提供一个强大的配置信息管理对象,前期译过这个对象的介绍,在使 ...

  2. kbmmw 5.07 正式发布

    来了来了 5.07.00 Dec 9 2018           Important notes (changes that may break existing code)         === ...

  3. KbmMW 4.40.00 测试发布

    经过漫长的等待,支持移动开发的kbmmw 4.40.00 终于发布了,这次不但支持各个平台的开发, 而且增加了认证管理器等很多新特性,非常值得升级.具体见下表. 4.40.00 BETA 1 Oct ...

  4. CentOS 7 mini 试用笔记

    CentOS 7 mini 试用笔记 安装过程中,网卡是默认关闭的,要手动打开. 安装好以后,查看IP地址:# ip addr----------------------1: lo: 本地回环2: e ...

  5. KBMMW 4.92.00 发布

    We are happy to announce the release of kbmMW Professional and Enterprise Edition. Yet again kbmMW c ...

  6. KBMMW 4.90.00 发布

    kbmMW is a portable, highly scalable, high end application server andenterprise architecture integra ...

  7. kbmmw 5.06.00 beta 发布

    原生.高效.可扩展.跨平台通信库来了. we are happy to announce v5.06.00 BETA of our popular middleware for Delphi and  ...

  8. kbmmw 5.05.00 发布

    新年前最后几天,kbmmw 发布了新版本,增加一大波功能.we are happy to announce v5.05.50 of our popular middleware for Delphi ...

  9. KBMMW 4.84.00 发布

    kbmMW is a portable, highly scalable, high end application server and enterprise architecture integr ...

随机推荐

  1. 欧拉函数 牛客寒假1 小a与黄金街道

    题目链接 分析:这题用到了欧拉函数, 欧拉函数,用φ(n)表示 欧拉函数是求小于等于n的数中与n互质的数的数目 详细可以看看这篇博文https://www.cnblogs.com/linyujun/p ...

  2. (CCPC-Final 2018)K - Mr. Panda and Kakin

    题意:x是\([1e5,1e9]\)的随机数,p是小于x的最大素数,q是大于等于x的最小素数,\(n=pq\),\(c=f^{2^{30}+3}\mod{n}\),给n和c求f 题解:rsa解密,首先 ...

  3. HDU - 4436sam裸题

    题意:给你多个数字串,求本质不同的子串和(去掉前导零) 题解:建广义sam,刚开始一直想的是用l来计算,发现前导零对l的影响根本消不掉,所以不会做= =,原来应该是直接用一个新的数组表示到当前有多少个 ...

  4. nodejs进程线程优化性能

    1. node.js 单线程的特点 node.js 以异步非阻塞单线程,作为其执行速度的保障.什么是非阻塞单线程? 举一个现实生活中的例子,我去巢大食堂打饭,我选择了A套餐,然后工作人员区为我配餐,我 ...

  5. Centos7.3安装和配置jre1.8转

      在正式环境里 我们可以不安装jdk ,仅仅安装Java运行环境 jre即可: 第一步:下载jre 我们去oracle官方下载下jre http://www.oracle.com/technetwo ...

  6. leetcode-algorithms-36 Valid Sudoku

    leetcode-algorithms-36 Valid Sudoku Determine if a 9x9 Sudoku board is valid. Only the filled cells ...

  7. Oracle 11.2.0.4.0 Dataguard部署和日常维护(4)-Datauard Gap事件解决篇

    Oracle dataguard主库删除备库需要的归档时,会导致gap事情的产生,或者备库由于网络或物理故障原因,倒是备库远远落后于主库,都会产生gap事件,本例模拟gap事件的产生以及处理. 1. ...

  8. python使用MySQLdb模块连接MySQL

    1.安装驱动 目前有两个MySQL的驱动,我们可以选择其中一个进行安装: MySQL-python:是封装了MySQL C驱动的Python驱动:mysql-connector-python:是MyS ...

  9. IDA 逆向工程 反汇编使用

    IDA pro 7.0版本 from:freebuf 用到的工具有IDA pro 7.0  ,被反汇编的是百度云(BaiduNetdisk_5.6.1.2.exe). 首先,IDA pro的长相如下: ...

  10. -L、-rpath和-rpath-link的区别

    链接器ld的选项有 -L,-rpath 和 -rpath-link,看了下 man ld,大致是这个意思: -L::  “链接”的时候去找的目录,也就是所有的 -lFOO 选项里的库,都会先从 -L ...