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依旧需要手工填加。

最新文章

  1. MySql.Data.Entity 在EF中解析uint的枚举时有BUG
  2. java06
  3. 归并排序算法 java 实现
  4. Sublime无法使用package control安装插件
  5. IntelliJ_编译一直报错“找不到符号”
  6. 0-systemctl开机启动项
  7. 最大化 AIX 上的 Java 性能,第 4 部分: 监视流量
  8. Entity Framework中的多个库操作批量提交、事务处理
  9. linux gd库不支持jpeg解决办法
  10. DHCP服务详解
  11. 开源库CImg 数据格式存储之二(RGB 顺序)
  12. 在Windows Server 2008 R2 中架设 SMTP 服务器
  13. mongoDB 批量更改数据,某个字段值等于另一个字段值
  14. Android视频媒体相关,VideoView和开源框架vitamio
  15. 【XSY1642】Another Boring Problem 树上莫队
  16. 关于springboot整合配置pagehelper插件的方法
  17. 使用kcptun安全代理访问服务
  18. Set ARITHABORT Option设置为ON
  19. win10 安装 oracle 11g 时遇到 [INS-13001] 环境不满足最低要求 的问题
  20. Visual Studio win平台 AI环境搭建

热门文章

  1. 05 爬虫之scrapy
  2. web功能模块测试用例(模板)
  3. 【Oracle】【5】主键、外键管理
  4. 导出函数__declspec(dllexport)
  5. hdu-2865-polya+dp+矩阵+euler函数
  6. nodejs--路径问题
  7. div中文字上下居中
  8. ssm的web项目,浏览器使用get方法传递中文参数时,出现乱码
  9. Django之用户认证功能
  10. spring事务管理(详解和实例)