SQL을 Access로 내보내는 데 exe를 사용하고 있습니다. 여러 뷰를 내보내는 여러 클라이언트가 있고 DTS 패키지를 설정하고 유지 관리하는 오버 헤드가 너무 많아서 DTS를 사용하고 싶지 않습니다. .MS Access interop - 데이터 가져 오기
* 편집 :이 프로세스는 매일 밤 많은 클라이언트가 자동화하므로 전체 프로세스를 시작하고 저장 프로 시저의 커서 내에서 제어해야합니다. 내보내기를 위해 프로젝트별로 데이터를 필터링해야하기 때문입니다.
나는 액세스 및 가장 유망한가 상호 운용성 Access를 사용하고 내가보기에서 가져 오기를하고 문제를 명중 가지고
doCmd.TransferDatabase(Access.AcDataTransferType.acImport...
를 실행하고 있으며, 실행에 SQL에서 데이터를 얻을 수있는 많은 방법을 시도 가져 오기를 수동으로 수행하면보기가 데이터를 충분히 빨리 반환하지 않기 때문에 액세스가 시간 초과되었음을 알리는 MessageBox 대화 상자를 팝업합니다. 나는 이것이 interop에서도 일어난다 고 생각하지만, 숨겨져 있기 때문에 그 방법은 결코 돌아 오지 않는다!
이 메시지가 나타나지 않도록하거나 가져 오기 명령의 시간 초과를 늘릴 수있는 방법이 있습니까?
현재의 공격 계획은 뷰를 테이블로 전개 한 다음 해당 테이블에서 가져온 다음 병합 된 테이블을 삭제하는 것입니다.
이 문제를 해결하는 방법에 대한 제안 사항에 만족합니다.
편집 : 내가 뭐하는 거지에
추가 정보 :
우리는 각각의 표준 데이터 모델이 여러 클라이언트가 있습니다. '모듈'중 하나는 액세스 내보내기 (sproc)입니다. 매개 변수 테이블에서 내보낼 뷰를 읽고 내 보낸다. 보기는 프로젝트별로 필터링되며 각 프로젝트 (모든보기에는 프로젝트 필드가 있음)에 대한 액세스 파일이 생성됩니다.
SQL 2005를 실행 중이며 SQL 2005로 빨리 이동하지는 않습니다. 몇달.
그런 다음 각 데이터베이스에서 구성된 모듈을 실행하는 모듈 실행 작업이 있습니다. 이 모듈 실행에서 실행되는 많은 가져 오기/내보내기/다른 작업이 있으며 액세스 내보내기가이 프레임 워크에 적합해야합니다. 그래서 우리의 매개 변수 프레임 워크를 통해 구성 할 수있는 일반 SQL -> 액세스 내보내기가 필요합니다.
현재 sproc은 내가 작성한 exe를 호출하고 interop를 통해 내 exe 액세스를 엽니 다. 서버에 문제가 있다는 것을 알고 있지만 모듈 실행은 한 번에 하나의 모듈 만 실행하므로 프로 시저가 실행됩니다. 한 번에 두 개 이상의 인스턴스를 실행하지 마십시오.
방금 내 질문을 편집 했으므로 저장 프로 시저에서 프로세스를 자동화해야합니다. 또한 VBA는 액세스 interop을 사용합니다. 이는 outlook/Excel과 비교하여 매우 제한되어 있으므로 VBA와 마찬가지로 Com interop을 통해 수행 할 수 있어야합니다. 중급 테이블 내가 노크와 함께 실행할 수 있습니까? –
Interop을 통해 DoCmd가 기본적으로 Access Querydefs, 매크로 및 메뉴 항목을 호출한다는 것을 의미하는 것으로 생각한다면 Access VBA는 훨씬 더 많은 작업을 수행합니다. DoCmd가 유용하다는 사실을 결코 발견하지 못했습니다. 또 다른 확실한 명제는 SQL의 커서를 사용하여 Access 인스턴스를 실행하는 것입니다. 나는이 올바른 것을 이해하고 있는가? – dkretz
나는 당신이 원하는대로 그것을 할 수 있도록 도와 줄 것이다. 그러나 나는 상황에 대한 이유와 사물의 이유를 이해할 필요가있다. – dkretz