2014-06-11 6 views
0

회계 시스템을 실행 중이며 특정 데이터베이스를 여는 중 트랜잭션 오류가 발생합니다. 문제는 일부 인덱스 파일 (CDX)이 손상되었음을 나타냅니다. 테이블 파일 (DBF)이 완벽 해 보입니다. Excel로 열어서 모두 읽을 수 있습니다. Visual Fox Pro를 사용하여 어떻게 이러한 cdx 파일을 재구성 할 수 있습니까?Reindex Visual FoxPro 테이블 (손상된 cdx)

Use mydatabase.DBF exclusive 

Reindex 

Close all 

을하지만 그것은 FXP 파일을 생성하는 것 :

내가 노력하고있어. 이 방법이 효과가 있는지, 무엇을 사용해야하는지 잘 모르겠습니다.

또한 내가 완전히 잘못된 것을하고 있다면 용서해주십시오. 이 문제를 해결해야하므로이 순간에 VFP를 배우려고합니다.

미리 감사드립니다.

답변

0

dbf 개의 파일과 cdx 개의 파일이 일대일로 매핑됩니다.

'mydatabase'는 cdx 파일과 동일한 이름입니까? 그렇지 않은 경우 올바른 파일 인 cdx을 알고 있다면 파일을 수동으로 열어야합니다 (그 방법은 기억 나지 않습니다).

1

인덱스 (cdx 파일)에 함수 호출이 포함되어있는 경우 Reindex 명령을 통해 생성 된 FXP 파일을 얻는 유일한 방법이라고 생각합니다. FXP 파일은 컴파일 된 PRG (프로그램 파일)입니다. 이들은 보통 인덱스의 일부가 아니지만 사용될 수 있습니다.

이러한 인덱스 태그 중 하나가 있는지 알아 보려면 USE MYDATABASE.DBF EXCLUSIVE 명령을 실행 한 후 명령 창에 DISPLAY STATUS를 입력하십시오. 이 명령은 구조적 CDX 파일의 모든 색인 태그를 나열합니다.

예 :

Structural CDX file: C:\PRO60\ARDATA\ARCUST02.CDX 
     Index tag: ADDRESS1  Collate: Machine Key: UPPER(ADDRESS1) 
     Index tag: ADDRESS2  Collate: Machine Key: UPPER(ADDRESS2) 
     Index tag: CURRENCY  Collate: Machine Key: CURRENCY 
     Index tag: COMPANY1  Collate: Machine Key: "G_RETSDX(COMPANY)" 

마지막 태그는 함수 호출이 포함되어 있습니다. 위의 예제에서 reindexing은 G_RETSDX() 함수에 대한 액세스가 필요합니다.

FXP 문제를 설명합니다. 그러나 이것은 "트랜잭션 오류"를 해결하지 못할 수도 있습니다 ... 잘못된 오류 메시지를 이해하기 위해 정확한 오류 메시지에 좀 더 구체적으로 설명해야합니다.

3

어디에서 이러한 명령을 시도하고 있습니까? 명령 창에서 나온 것이라면 제대로 작동합니다 (REINDEX는 실제로는 깨진 색인을 수정하는 가장 좋은 방법은 아니지만). 프로그램에 넣으면 그 프로그램을 실행하면 컴파일 된 프로그램 인 FXP가 생성됩니다.

DELETE TAG ALL

다음 INDEX 명령을 사용하여 :

오히려 깨진 태그를 전파 할 수있는 REINDEX를 사용하는 것보다, 그 다음 발행 CDX에서 모든 태그의 목록을 얻으려면 더 나은, 그리고 모든 태그를 다시 만듭니다. (말했다, 사람들을 깰 수있는 모든 태그를 삭제, 거기뿐만 아니라, 좋은 생각이 아니다 어디 테이블이 데이터베이스 (DBC)에 속하는 경우 상황은., 그리고 그것은 지속적인 관계에 관여합니다.)

다말

0

이 Oracle 데이터베이스 솔루션은 dbf 파일 작업에 다른 제품을 사용하는 경우이 가이드가 도움이되지 않습니다!

새 하드 디스크에 파일, 모든 데이터베이스 파일 (제어 파일, 재실행 로그, 데이터, 구성 파일 ...)을 가능한 한 동일한 위치 (디렉토리)에 복사하십시오. 그런 다음 oradim을 사용하여 서비스를 생성하십시오. oradim -new -startmode manual 서비스가 아직 시작되지 않은 경우 서비스를 시작하십시오. sqlplus "/ as sysdba"를 실행하고 시작하십시오. 모든 파일이 같은 위치에 복사 된 경우이 방법이 적용됩니다.