2015-01-26 2 views
0

모두 안녕하십니까. FoxPro 테이블을 MSSQL으로 변환 할 때 발생하는 문제가 있습니다.Foxpro 산술 오버플로 오류가 발생하지 않습니다.

예상되는 값을 초과하는 숫자가 FoxPro 테이블 필드에 입력되었습니다. (10.2 숫자 필드에 큰 정수가 입력되었습니다.) 그러나 FoxPro 여전히 데이터를 저장할 수 있으며 보고서에 표시되고 있습니다. 그러나 데이터를 MSSQL로 변환하려고하면 오류가 발생하고 해당 값이 표시되지 않습니다.

나는 수를 저장하지만 내 질문은 왜 FoxPro에이 오류가 통과 할 수 있도록하고, 심지어 그 숫자가 "잘못"인 경우에 표시 될 때

+1

숫자는 무엇입니까? –

+0

@AlanB "51862713.80"FoxPro에서 10,2 필드에 삽입 할 때. '51862713.8'로 표시됩니다. SQL에 들어 가지 않습니다. 크기를 11,2로 바꾸면. 정상적으로 처리되어 SQL로 변환됩니다. 나는 10,2 필드에서 더 많은 숫자를 더했습니다. 그리고 그것은 나를 멈추게하지 않습니다. 이유는 무엇입니까 – Liberace

+0

VFP의 10,2 숫자 필드가 실제로 최대 10 자리까지 유지할 ​​수 있는지 대부분의 사람들은 알지 못합니다. 즉, 1234567890을 보유 할 수 있습니다. 이에 따라 계획을 세워야합니다. –

답변

1

그것은 가능하다 오류가 발생하는 것을 이해 모든 언어 때문에 단점이 있으며 이것은 Visual FoxPro 중 하나입니다. C와 같은 강력한 형식의 컴파일 된 언어와 동일한 방식으로 동작한다고 가정하고 있습니다.이 동작은 dBase 일까지 거슬러 올라갈 수 있으며 호환성을 위해 보관되었습니다.

당신이 규칙은 크기 초과하는 숫자 필드에 값을 삽입하려고하면 :

  • 자르기 진수 장소 및 필드의 나머지 소수 부분을 라운드.
  • 값이 맞지 않으면 과학 표기법을 사용하여 필드 내용을 저장하십시오.
  • 값이 여전히 맞지 않으면 필드 내용을 별표로 바꿉니다.
관련 문제