2011-09-12 5 views
0

VFP 데이터베이스를 연결하는 데 VFPOLEDB를 사용하고 있습니다 (dbf 파일의 디렉터리). 연결되면Visual FoxPro DB에 누락 된 테이블

, 내가 직접 사용하여 테이블을 만들 :이 시점에서

create dbf critera(field_name c(30)) 

, 나는 새로운 DBF 파일은 데이터베이스 디렉토리에 생성되어 있는지 확인합니다. 그런 다음 새 테이블을 쿼리하려고하면 행이 반환되지 않습니다.

select * from criteria 

나는 다음과 같은 오류가 표시 오전 :

File "criteria.dbf" does not exit. 

이상한, 응?

그래서 수동으로 DBF 파일을 삭제합니다 (VFPOLEDB는 삭제를 지원하지 않습니다). 다음 쿼리를 실행하십시오.

create db criteria(field_name c(30)); select * from criteria 

예상되는대로 결과가 반환되지 않습니다.

무엇을 제공합니까? 어떤 제안?

답변

1

첫째, (타입 - 오를 수), 당신이 가지고

create dbf Critera (missing the "i") 

및 연결 문자열에 대한 다음

select * from Criteria (has the "i") 

그렇지 않으면 그 ..., 당신은 단지에 연결 PATH .dbf 파일을 찾거나 명시 적으로 경로와 데이터베이스에 연결하고 있습니까?

경우, 단지 경로

string YourVFPConnectionString = 
    "Provider=VFPOLEDB.1;Data Source=c:\\SomePath\\WhereDataIs\\"; 

또는 특정 데이터베이스 컨테이너

string YourVFPConnectionString = 
    "Provider=VFPOLEDB.1;Data Source=c:\\SomePath\\WhereDataIs\\YourDatabase.dbc"; 

그냥 디렉토리를 지정하여 테스트하는 것이 더 쉬울 수 있습니다와

. VFP OLEDB 공급자는 쿼리 된 모든 테이블의 루트와 다른 저장 프로 시저 등에 액세스 할 수있는 전체 .dbc (데이터베이스 컨테이너)의 경로를 고려합니다.

OleDb는 "드롭 테이블"을 지원하지 않습니다. OleDbCommand의 ExecuteNonQuery()를 통해 ERASE "Criteria.dbf"를 실행하여 파일을 삭제할 수 있습니다.

마지막으로 VFP는 ";" 다른 SQL 엔진과 같은 문 사이의 휴식은 일련의 쿼리를 차례로 보낼 수있는 곳에서 수행됩니다. ";" VFP에서 "이 명령은 다음 줄에서 계속됩니다"로 간주되며 예외를 처리해야합니다. 즉 처리하지 못했을 것입니다.

관련 문제