2014-05-19 2 views
0

MFC에서 프로그래밍하고 ADO를 사용하여 FoxPro .dbf 파일에 연결합니다. 파일을 읽고 데이터베이스 파일의 복사본을 만듭니다. 열 유형이 'C'즉 문자 인 데이터를 삽입하는 중 길이가 10 byte.value "0002") 문제가 있습니다. "0"이 필드에 삽입되고 있습니다. 'Character'에서 'Memo'로 열 유형을 변경하여 올바른 값을 삽입하지만 .FPT 파일에 데이터를 저장할 수 있습니다. 동일한 .dbf 파일에 데이터를 삽입해야합니다 .Any 도움을 주시면 감사하겠습니다. 당신은 표준 SQL 명령 (ALTER TABLE) 또는 SQL과 같은 equilvalents (CREATE CURSOR)를 사용하는 경우 기본적으로foxpro dbf 파일에 열 유형이 '문자'인 값을 삽입하는 방법.

+0

삽입 진술을 보여줄 수 있습니까? 또한 값을 삽입하는 것처럼 보이는 것은 무엇입니까? 열이 10 자이고 값에 선행 공백이 10 개를 초과하는 경우이 문제가 발생할 수 있습니까? ALLTRIM() 함수 안에 값을 넣거나 문자 열을 더 크게, 아마도 200 자로 만듭니다. – Jerry

+0

직선 복사본을 만드는 경우 파일 시스템을 사용하여 DBF/CDX/FPT 파일을 복사하는 것이 더 쉽지는 않습니까? –

+0

@ jerry. 필드 이름과 데이터의 COleSafeArray 둘 다인 두 개의 인수를 취하는 레코드 세트의 AddNew() 함수를 사용하고 있습니다. –

답변

1

는, FoxPro에의 C 유형 열은 1의 길이를 가지고, 당신은에 대한 간단한 "C"데이터 형식을 변경해야 "C (10)".

FoxPro의 "SELECT INTO"구문을 사용하여 데이터 복사본을 만드는 경우 라이브러리가 첫 번째 행을 기반으로 각 열의 크기를 유추합니다. 이 경우 field1을 C (10)로 사용하고 field1`과 같이 간단한 field1' but rather CAST (field1은 C (10))가 아닌 열을 정의하고자합니다.

+0

네, 이미 해냈고 효과가있었습니다. 답장을 보내 주셔서 감사합니다. –

관련 문제