스크립팅: SQL 쿼리 결과를 프로젝트에 저장안녕하세요. 초보자 질문일 수도 있지만 스스로 해결책을 찾을 수 없었습니다. JSL을 통해 SQL 쿼리로 생성된 테이블을 프로젝트에 저장하고 싶습니다. 코드는 아래와 같습니다. 라벨 등은 생략되었습니다. 안타깝게도 백그라운드에서 쿼리를 실행한 후 dt가 삭제된 것 같습니다. 타이밍 문제인가요? 도움을 주셔서 감사합니다.
query = New SQL Query(
Connection(""),
QueryName(""),
Select(Column("", "t1"), ),
From(Table("", Schema(""), Alias("t1")), )
);
query << Run Background(OnRunComplete(dt = queryResult));
project = New Project();
project << Save As("");
자동화 및 스크립팅데이터 접근Re: 스크립팅: 프로젝트에 SQL 쿼리 결과 저장백그라운드에서 쿼리를 실행하면 JMP가 다음 명령으로 이동하기 전에 결과를 기다리지 않으므로 기다리도록 지시해야 합니다.나는 일반적으로 쿼리 전에 dt를 비어 있음()으로 정의한 다음 계속 진행하기 전에 dt가 스크립팅 가능해질 때까지 기다리도록 JMP에 지시합니다.
dt = Empty();
query = New SQL Query(
Connection(""),
QueryName(""),
Select(Column("", "t1"), ),
From(Table("", Schema(""), Alias("t1")), )
);
query << Run Background(OnRunComplete(dt = queryResult));
While( !Is Scriptable( dt ), Wait( 1 ) );
project = New Project();
project << Save As("");Re: 스크립팅: 프로젝트에 SQL 쿼리 결과 저장백그라운드에서 쿼리를 실행하고 쿼리가 완료된 후에도 일부 작업을 계속 수행하려면 PostQueryScript를 사용할 수 있습니다.
Names Default To Here(1);
obj = New SQL Query(Connection("ODBC:DSN=SampleDSN;"), Custom SQL("SELECT c1, c2, c3 FROM my_table;"));
obj << Post Query Script("show( queryResult << Get As Matrix );");
아니면 당신도 사용할 수 있을 것 같아요 <<실행 완료 시 하지만 그 안에 스크립트를 더 추가해야 합니다(그리고 전역 범위가 필요할 수도 있습니다...).