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 := 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文件中增加
kbmMW 5.07.00试用笔记的更多相关文章
- kbmMW 5.06.20试用笔记
1.kbmMWConfiguration自动备份配置文件的问题还没有修正. 下面是以前写过的内容,再一次在新闻组中提出这个问题: kbmMW提供一个强大的配置信息管理对象,前期译过这个对象的介绍,在使 ...
- kbmmw 5.07 正式发布
来了来了 5.07.00 Dec 9 2018 Important notes (changes that may break existing code) === ...
- KbmMW 4.40.00 测试发布
经过漫长的等待,支持移动开发的kbmmw 4.40.00 终于发布了,这次不但支持各个平台的开发, 而且增加了认证管理器等很多新特性,非常值得升级.具体见下表. 4.40.00 BETA 1 Oct ...
- CentOS 7 mini 试用笔记
CentOS 7 mini 试用笔记 安装过程中,网卡是默认关闭的,要手动打开. 安装好以后,查看IP地址:# ip addr----------------------1: lo: 本地回环2: e ...
- KBMMW 4.92.00 发布
We are happy to announce the release of kbmMW Professional and Enterprise Edition. Yet again kbmMW c ...
- KBMMW 4.90.00 发布
kbmMW is a portable, highly scalable, high end application server andenterprise architecture integra ...
- kbmmw 5.06.00 beta 发布
原生.高效.可扩展.跨平台通信库来了. we are happy to announce v5.06.00 BETA of our popular middleware for Delphi and ...
- kbmmw 5.05.00 发布
新年前最后几天,kbmmw 发布了新版本,增加一大波功能.we are happy to announce v5.05.50 of our popular middleware for Delphi ...
- KBMMW 4.84.00 发布
kbmMW is a portable, highly scalable, high end application server and enterprise architecture integr ...
随机推荐
- find xss
from :http://blog.sina.com.cn/s/blog_68d342d90100nh7b.html 什么是XSS跨站攻击: http://baike.baidu.com/view/5 ...
- Gifts by the List CodeForces - 681D (思维)
大意: 给定森林, 要求构造一个表, 满足对于每个$x$, 表中第一次出现的$x$的祖先(包括$x$)是$a_x$. 刚开始还想着直接暴力分块优化一下连边, 最后按拓扑序输出... 实际上可以发现$a ...
- svn: 提交终止
今天我遇到了svn 的问题 svn: 提交终止: “/var/www/modelfinance/modules/incomereport/views/purchase” 处于冲突状态 冲突状态搞的我 ...
- win10下使用python访问vmbox中的redis
了解到redis没有windows的官方支持,所以在vmbox中的ubuntu装了redis#在ubuntu中 #搜索redis相关软件信息 apt-cache search ^redis #不清楚为 ...
- [洛谷 P1559] 运动员最佳匹配问题
题目描述 羽毛球队有男女运动员各n人.给定2 个n×n矩阵P和Q.P[i][j]是男运动员i和女运动员j配对组成混合双打的男运动员竞赛优势:Q[i][j]是女运动员i和男运动员j配合的女运动员竞赛优势 ...
- openstack安装指南和在centos7上的安装指南
openstack安装指南官网:http://docs.openstack.org/project-install-guide/newton/ openstack在centos7上的安装指南官网:ht ...
- python3+ftplib实现ftp客户端
一.程序说明 1.1 程序实现关键点 python实现ftp客户端,主要会遇到以下四个问题: 第一个问题是使用什么包实现----我们这里是使用标准库中的ftplib 第二个问题是怎么连接登录ftp服务 ...
- 构建RESTful API(十八)
首先,回顾并详细说明一下在快速入门中使用的@Controller.@RestController.@RequestMapping注解.如果您对Spring MVC不熟悉并且还没有尝试过快速入门案例,建 ...
- 分布式链路追踪(Sleuth、Zipkin)
技术背景 在微服务架构中,随着业务发展,系统拆分导致系统调用链路愈发复杂,一个看似简单的前端请求可能最终需要调用很多次后端服务才能完成,那么当整个请求出现问题时,我们很难得知到底是哪个服务出了问题导致 ...
- Java冒泡排序与选择排序
Java排序: 一.冒泡排序算法的运作如下: 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. ...