두 개의 프로그램 중 하나는 클라이언트이고 다른 하나는 클라이언트 용 서버입니다. 클라이언트는 같은 서버에 일부 데이터를 전송 한 후 응답을 읽Indy Server와 AdoQuery가 충돌합니다.
이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;
그러나 즉시 클라이언트에 오류가 제공하는 데이터베이스와의 연결을 열기로 "연결이 정상적으로 종료"
내가 입력을 시뮬레이션하여 클라이언트없이 서버 코드를 테스트하고 잘 작동. 그렇지 않다면 왜 내가 다음 문제는 무엇인가 그것을
어떻게 고칠 수있는 경우
나는 인디과 AdoQuery이 충돌 생각이며 어떻게 해결해야합니까?
Indy 사용시 서버와 통화하는 데 사용하고있는 포트는 무엇입니까? –
문제는 Indy 서버 코드가 주 스레드 외부의 스레드에서 실행된다는 것입니다. indy 스레드 컨텍스트에서 연결/쿼리를 만들어야합니다. 또는 Synchronize를 사용하여 주 스레드의 컨텍스트에서 DB 코드를 실행합니다. – whosrdaddy
포트를 사용하고 있습니다 : 55555 – Craig