摘要:kbmmw的httpsys的功能已經實現了好長時間,但是現在各個平台都要求使用https來提供服務。 今天一步一步來說一下如何使用kbmmw 的httpsys功能支持https. 首先為了獲得證書,我們可以使用阿里雲申請一個免費的證書。 登錄阿里雲,選擇免費版,0元購入。 購買成功后,就會在控制台顯
阅读全文
摘要:使用kbmMW Scheduler做定时任务,是一件非常爽的工作,看完下面的内容相信你也能同样爽! 什么是cron,参考 详解定时任务中的 cron 表达式 kbmMW Scheduler支持cron,可以按cron执行任务。看代码: KeepLiveScheduledEvent := Schedu
阅读全文
摘要:利用Delphi 11.1,新建个Multi-Device Application,即 FMX Project,默认是Debug状态,其编译选项Range checking是勾选的,也就是打开的,如下图,这与以前的版本是不同的。 切换到Release状态,这个选项则是关闭的,如下图: 如果你想修改这
阅读全文
摘要:升级到Delphi 11.1+kbmMW 5.19,编译后的项目在android平台上无法正常退出,这种情况下,再重进App,会卡死在启动界面,浪费N多脑细胞,发现是 kbmMWClientConnectionPool1造成的结果,他无法完成释放过程,跟踪代码发现执行StopScheduling方法
阅读全文
摘要:用Debug调试,提示这个信息,跟踪代码,出下面图中的行上: 在android上,上图中的这一行有问题,用Debug编译的app会闪退,检查这个函数,发现这个函数,result返回类型是Integer,而TThread.CurrentThread.tThreadID类型是cardinal,在Debu
阅读全文
摘要:今天同事遇到个问题,用kbmMWClientQuery执行存储过程,执行同一SQL: Exec MyStore "xxxx-xxxx",每次返回结果可能还不一样,根本就不是存储过程计算的内容。 最后改成kbmMWClientStoreproc解决! 这是以前在新浪博客写的内容,转过来: 在客户端,k
阅读全文
摘要:在项目中使用了Undo方法,今天被同事发现一个坑,就是Undo后的记录还是被提交了! kbmMWClientQuery1.Append; kbmMWClientQuery1.FieldByName('fid').AsString:='4'; kbmMWClientQuery1.FieldByName
阅读全文
摘要:procedure TForm3.Button1Click(Sender: TObject); begin FBindings := TkbmMWBindings.Create; FBindings.Bind(DisplayDataSet, 'f1', ListView1, '#Text1'); /
阅读全文
摘要:本来用10.3.3生产项目,随着Android 11的到来,已经有用户用上了,而10.3.3开发的app竟然在android 11闪退,没逼无奈,只好往Delphi 10.4.1升级。 本来一切顺利,安装环境,组件,编译生产项目。Win32成功,于是切换成Android 32,编译,问题来了,使用的
阅读全文
摘要:对于TkbmMWLock来说,下面详细说明这个默认的kbmMWREWLock机制是如何运作的? 线程1 BeginRead Work for a longish time EndRead 线程2 BeginWrite Do some work EndWrite 如果Thread1进入BeginRea
阅读全文
摘要:最近应用遇到奇怪的问题,在线程中读取一个ClientQuery的字段值时,读取的不完整,造成执行结果错误。大体上象这样的代码: TUser=Class qUser:TkbmMWClientQuery; public function UserID:string read GetUserID; end
阅读全文
摘要:同事写了一个存储过程,用来计算库存表,数据库是sql server,然后利用kbmMWClientStoreProc来调用。因为在存储过程中使用了事务,当库存不足时,Rollback事务并提升级异常,这时候,产生个错误,大意是事务不配对。 跟踪代码,发现当客户端kbmMWClientStorePro
阅读全文
摘要:kbmMW 5.13.00发布了,升级后遇到这个问题,SynchronizedAfterRun不执行。 procedure TForm4.Button1Click(Sender: TObject); begin Text1.Text:='线程在运行中'; Scheduler.Run(procedur
阅读全文
摘要:kbmMW的下一个版本将进一步改进TkbmMWScheduler。调度程序支持添加作业以运行给定相当广泛的时间条件。它还支持在后台运行作业,完成后,以安全和一致的方式处理GUI更新。也就是说,如果您想在后台并行运行多个作业,并且只有当所有后台子作业完成时才调用该作业。 kbmMW将允许您在下一个版本
阅读全文
摘要:不记得是哪一个版本,增加了TFieldLifeCycle = (lcAutomatic,lcPersistent ),字面意思是“字段生命周期”,lcAutomatic:表示TField是运行期自动生成的lcPersistent:表示TField对象是持久性的然后,为字段TField增加了LifeC
阅读全文
摘要:基于kbmMW实作项目,难免要在服务端实现方法供客户端调用,在这里有条重要的经验分享。 假设服务端有个方法,并反回一个字符串。 Procedure TQueryService.ValidUser:string begin ... result:='OK'; end; 上面服务端方法返回串OK,表示用
阅读全文
摘要:实做一个应用,一般情况下,我们总要为之做一个配置文件,用来设置象数据库联接参数等信息,然后用TIniFile或者注册表对象来读写。为此,kbmMW为我们带来更好用的方式,让代码维护起来更优雅。 如果你对kbmMW Configuration Framework一无所知,可以先看看译的博文,大体先了解
阅读全文
摘要:群友说这里有bug,XE以上版本都不会出现,BUG只对XE以下版本产生问题。按下面的改:
阅读全文
摘要:使用kbmMW调试内存使用情况 kbmMW当前版本包含越来越多的功能,如进行常规日志的记录,审核,记录运行时异常处理的堆栈跟踪功能,现在还具有内存使用的调试功能。这些功能实际上可用于任何应用程序,甚至包括不使用kbmMW其他部分的应用程序。我已经写了一些有关kbmMW中的日志记录和审计系统的文章,其
阅读全文
摘要:开始之前,可以复习一下kbmMWSmartBind实现ListView绑定数据集进阶篇(三) 在这篇文章中,我分享了如何将ClientQuery与Listview绑定,以及遇到的问题的解决方法,但并不完美,还存在问题。 那最好的实现方案应该是这样的: 绑定代码只执行一次 支持ClientQuery重
阅读全文