【发布时间】:2014-06-19 14:38:07
【问题描述】:
我有两个程序,一个是客户端,另一个是客户端的服务器。 客户端像这样向服务器发送一些数据,然后读取响应:
idtcpclient1.WriteLn(command); //Command contains data that the server needs eg. name and surname
progressbar1.StepIt;
sresult := idtcpclient1.ReadLn();
服务器然后读取该行,对其进行操作并创建一个 SQL 查询。
adoquery1.Close;
adoquery1.SQL.Text := 'select * from '+sGrade;
adoquery1.Open;
但是一旦打开与数据库的连接,客户端就会给出错误“连接正常关闭”
我已经通过模拟输入在没有客户端的情况下测试了服务器代码,它工作正常。
我认为 Indy 和 AdoQuery 存在冲突 如果是这样,为什么以及如何解决它
如果不是,那是什么问题,我应该如何解决?
【问题讨论】:
-
在使用 Indy 时,您使用哪个端口与服务器通信?
-
问题是Indy服务端代码是在主线程之外的线程中执行的。您需要在 indy 线程的上下文中创建连接/查询。或者使用 Synchronize 在主线程的上下文中执行 DB 代码。
-
我正在使用端口:55555
-
@whosrdaddy 我不知道如何使用“同步”,请您详细说明如何使用
标签: sql delphi delphi-7 indy tadoquery