在实际事务应用中,多次打开server进行大写。其中遇到一些问题,由于时间关系,没有好好整理,虽然问题解决了,
但原因和其他方法没有去进一步测试。
1、每个单元用本地TidTCPClient变量连接server时,单元间会冲突。是disconnect不到位,还是什么问题,还不清楚。
目前解决办法是通过线程完成:
在线程idthrdcmpnt1的onrun事件中:
procedure TFrame_UpdownSaleData.idthrdcmpnt1Run(Sender: TIdThreadComponent);
begin
getSalesRecord(mmo1);//打开连接完成存取数据,然后关闭和free连接
idthrdcmpnt1.Stop;//stop线程
end;
2、要关闭一个tcpclient的connect,需要执行下面语句,才能够实现。
tcpipClient.CheckForGracefulDisconnect(True);
tcpipClient.Disconnect;
3、写数据时,由于大华没有提供具体的技术资料。所以花费不少时间。要注意的是:write()命令后,其返回一行字符串。!ou【plu码】+其他,如果写失败则返回空值。因此要配套使用write and readln,而且要判断是否失败。