안녕하세요. 문의좀 드리겠습니다.
제가 하려는 것은 6e버전에서 TidTCPServer/Client 컴포넌트를 통해
특정 sql의 쿼리 dataset을 주고받는 c/s를 구현하려고 합니다.
서버쪽에 database 컴포넌트가 있구요.
idtcpserver.onexecute에는 client의 요청이 있을 경우
쿼리문을 실행하여 그 자료를 클라이언트에 넘겨주게 되어있습니다.
클라이언트가 한놈만 들어왔을땐 제대로 되는데
한놈이 처리중일때 다른놈이 들어와서 요청을 하면 첫번째 놈의 작업이 멈춰버리네요.
database컴포넌트에는 session컴포넌트를 붙여놨구요.
idtcpserver.onexecute에서는 tthread 클래스를 계승받아 쿼리문을 실행, 데이터셋을
클라이언트에 리턴해주는 유도된 클래스로 클라이언트의 요청이 있을 때마다
쓰레드 객체를 동적 생성하여 실행하고 빠지게 처리를 했는데도 아직 무엇인가 버그가 있는지
제대로 작동을 안하네요. 참고할만한 소스나 도움을 좀 주시면 감사하겠습니다.
스레드 코딩을 오래간만에 잘 해보려니 멀티스레딩이 잘 안되는군요.
-locke
Thread에서 TQuery 등의 VCL콤포넌트를 사용하기위해서는
TDataBase코포넌트와 VCL 콤포넌트를 1:1로 구성해서 각각의 TCririticalSection으로 묶어서 사용해보세요