1。不要以前的旧贴,都不能解决问题,
2.刚开始使用是没有事的
3。使用用SDAC控件
4.用法
从Select Top 10 * From tableA(约有9K条记录)
选择数据
更新TableB,TableC(TableB,TableC为主从表,TableC的PK为自增型ID)
更新方法:
开始事务   [red]//在此出错[/red]
try
主表TableB
Select Top 1 * From TableB
append;
....
post;
从表TableC,从内存表中更新
Select Top 1 * From TableC
while Not vt.eof do
begin
append;
...
post;
vt.next;
end;
提交事务
except
回滚事务
end;
经跟踪,关闭TableA后能正常,
如何解决此问题
5.使用的SDAC中的MSQuery,没有缓冲更新,SQL探查器中看到更新TableC时,会返回自增型字段的值.其它的SQL与直接取用Insert Into纯SQL更新一样,
随数据越来越多,SQL的日志也越来越大,出现这个问题也越来越多
请帮解决  

解决方案 »

  1.   

    环境:HP unix C开发做前端,银行方;DELPHI2007,我方,两者使用TCP/IP协议进行通讯,用二次握手方式,使用三个协议通讯(一个请求包,一个请求应答包,一个确认包),由客户端主动发起,采用短连接,请求包与请求应答包是同一次连接中完成;
    1.我方用IOCP做了服务端,使用D2007开发测试客户端(使用IOCP,INDY9)都能与服务端正常通讯,但与银行方不能正常通讯,只看到对方登入后就断开.
    2.我方用INDY9做了服务端,使用D2007开测试客户端(IOCP,INDY9)都能正常通讯,与银行方基本能正常通讯,但常会丢掉确认包,到最后银行方发现它自己的主控程序有问题,修改了情况好转了.但间中还会收不到确认包,银行说我拒绝他;
    3.我方使用delphiXE+indy10升级了上面的服务端,银行完全不能接入,出现上面1的情况.
    4.我方使用DELPHI XE + TCPServer的线程阻塞模式重写了服务端,银行不能接入,出现上面1的情况.
    5.现在用回原来的2的程序,银行方出现有时能发,有时不能发数据过来,直到银行方取消一句tcpnotime什么的,可以发前两个协议过来,但还是不能发确认包过来,如何处理?
    我分析:UNIX下是阻塞的,所以我用IOCP完全不能通讯,但为什么TCPSERVER用线程阻塞也不能通讯.
    INDY9可以,INDY10就不可以出现IOCP的现象,不是不INDY10改为像它所说的不同的context在不同的时间有不同的线程进行服务,这与IOCP类似,所以不行,INDY9是一个连接一个线程,与TCPSERVER的线程阻塞有什么区别,
    本人网络知识为空,只会用控件,IOCP也是搞网上的代码改的.
    现在这里向大家求救,希望大家能给一些指点我.
    谢谢.