TLama - 10 점 샷, 덕분이었다. 몇 달 전에 amAsync 모드를 추가했습니다. 그런 다음 모든 기능을 실현하지 못했습니다.
이제는 help site here을 한 번 더 읽고 'while'루프가있는 예제에서 내 질문에 대한 정확한 대답이 있습니다.
저는 stackoverlflow에서 새로운 제품입니다. TLama를 어떻게 갚을 수 있습니까? Frazz의 sugestion에 따라 :)
편집 한
당신은 구원을 몇 내 시간, 내가 위에 링크 된 소스 페이지에서 일부 정보를 복사하려고합니다.
FireDac에는 4 가지 명령 실행 모드가 있습니다. FDQuery1.ResourceOptions.CmdExecMode에서 변경할 수 있습니다. FdQuery1.ResourceOptions.CmdExecTimeout에서 명령을 실행하기위한 시간 제한을 설정할 수도 있습니다.
CmdExecModes은 다음과 같습니다
amBlocking - 작업이 완료 될 때까지 호출 스레드와 GUI가 차단됩니다.
amNonBlocking - 호출 스레드는 작업이 완료 될 때까지 차단됩니다. GUI는 차단되지 않습니다.
amCancelDialog - 작업이 완료 될 때까지 호출 스레드와 GUI가 차단됩니다. FireDAC은 작업을 취소 할 수있는 대화 상자를 표시합니다.
amAsync - 호출 스레드 및 GUI가 차단되지 않습니다. 호출 된 메서드는 즉시 반환됩니다. 명령은 명령 상태를 확인하여, 실행하는 동안 당신은 기다릴 수
:
FDQuery1.ResourceOptions.CmdExecMode := amAsync;
FDQuery1.Open;
while FDQuery1.Command.State = csExecuting do begin
// do something while query is executing
end;
6 개 개의 명령 상태가 : csInactive, csPrepared, csExecuting, csOpen, csFetching, csAborting가.
양식에 TADGUIxWaitCursor가 있습니까? 그렇지 않다면 추가하려고 했습니까? – MartynA
'ResourceOptions.CmdExecMode' 속성의 값을 변경 했습니까? (방금 비동기식 모드로 전환했습니다)? – TLama
MartynA - 응용 프로그램에 * WaitCursor 구성 요소가 있습니다. CustomComponent에는 없지만 일부를 추가하지 않았습니다. – Quasik