2014-11-26 2 views
0

상당히 큰 데이터 집합을 통해 여러 조인 FoxPro OLEDB 쿼리를 실행하고 있습니다.FoxPro OleDbException : 너무 큰 파일

System.Data.OleDb.OleDbException (0x80004005): File c:\users\appX\appdata\local\temp\4\00004y7t002o.tmp is too large. [LOCAL]

또는

System.Data.OleDb.OleDbException (0x80004005): Error writing to file c:\users\appX\appdata\local\temp\00002nuh0025.tmp. [REMOTE]

(나는 로컬 및 원격 쿼리를 시도) : 그러나 전용 "MAX"또는 "TOP 100"[행] 데이터, 나는 다음과 같은 오류가 요구에도 불구하고 .

OLEDB 쿼리가 엄청난 양의 임시 파일을 생성/삭제하는 것처럼 보입니다.

enter image description here

이 내 쿼리는 단순히 너무 큰 제안과 여러 개의 작은 쿼리/해결 방법이 필요합니다.

질문 : 이것은 알려진 문제입니까? 공식적인 해결 방법이 있습니까? FoxPro ODBC 어댑터 같은 문제가 있습니까?

+0

간단한 쿼리를 보여줘야합니다. SELECT TOP (100) PERCENT 또는 TOP (100) ROWS를 사용하고 있습니까? 차이점을 확인하십시오. –

+0

실행하려고하는 실제 쿼리를 게시 할 수 있습니까? 작은 커서를 임시 커서로 실행 한 다음 최종 쿼리를 실행하여 최적화 할 수 있습니다. – DRapp

답변

2

기본적으로 2GB는 Visual FoxPro가 처리해야하는 파일의 상한값입니다. 그 임시 파일 중 어느 것도 그 근처에 없습니다. 작성중인 위치에 충분한 디스크 공간이 있습니까? 사용자 디스크 할당량이 유효합니까?

+0

할당량과 디스크 공간을 사용할 수 없지만 디렉토리의 파일을보고있는 동안이었습니다. 임시 파일이 2GB 파일 제한을 초과했을 가능성이 있습니다. 거대한 데이터 세트를 피하기 위해보다 구체적인 일련의 쿼리를 사용했습니다. (FoxPro 2GB 파일 제한에 대해서는 알고 있었지만 OLEDB 쿼리에는 포함되지 않았습니다.) – PeterX

+1

중요하지 않음 - OLEDB 드라이버는 여전히 동일한 VFP DLL을 사용하므로 천장에 상관없이 사용할 수 있습니다. –