버튼을 누르면 하드에서 50메가정도의 txt파일을 적당한 간격으로 잘라낸후
db에 저장하는 프로그램을 짰습니다.
(데이터 CD를 그런식으로 보내주었더군요 =_=;;)
덕분에 일일히 각라인별로 규칙적으로 잘라서 db에 넣어주어야 합니다만..
데이터 전송은 잘되긴합니다만...
이 프로그램을 돌리면 '응답없음'상태가 되어버리더군요
온 클릭이벤트에 잘라서 작업하는걸 전부 넣어버렸거든요...
그리고 얼마전에 FTP에서 데이터를 전송하는 프로그램을 짰습니다..
클릭을 하면 접속을 해서 다운을 받아라. 라는 단순한 구조이긴 합니다만.
클릭 이후 다운완료 시점까지 역시 응답을 안하더군요...
첫번째 경우같이 읽는 이벤트 하나하나가 짧을경우엔..
Application.ProcessMessages;
로 처리해도 되는듯 합니다만..
2번째처럼 FTP다운같은건 완전 통짜 이벤트인듯 해서요...
이렇게 각 이벤트가 완료될때까지 프로그램이 응답을안해버립니다..
어떻게 해결할수 있을까요... 죄송하지만 조언좀 부탁드리겠습니다..
아래는 FTP 다운받는 구문이라고 만든부분입니다 ^^;;
초보라 좀 무식하게 짠감이 있긴 합니다만 =_=;;
----------------------------------------------
idftp1.Host:=주소;
idftp1.User:=아이디;
idftp1.Password:=암호;
idftp1.Port:=포트;
try
idftp1.Connect(true);
Application.ProcessMessages;
idftp1.TransferType:=ftBinary;
idftp1.ChangeDir('upload');
Application.ProcessMessages;
idftp1.Get('03_BABYLON_VERSES_OF_ANGEL.mp3','c:tempkel.mp3',true);
except
showmessage('연결에 실패했습니다');
end;
이용하기 때문에 작업이 끝날 때까지 블록됩니다. 이러한 문제점
때문에 AntiFreeze라는 컴퍼넌트가 있습니다. 이 컴퍼넌트를 이용해도
될 것 같고요, 그리고 idFTP 컴퍼넌트의 이벤트에 보시면 onWork라는
이벤트가 있습니다. 이 이벤트를 이용하면 얼마만큼 송수신하고 있는가를
알 수 있습니다. 여기에 Application.ProcessMessagees 구문을 넣어
줘도 됩니다. 아나면 전송 상황을 보여주든가요...