2012-07-24 1 views
0

열에 삽입하려고하는데 삽입중인 문자열의 첫 번째 문자 만보고 있습니다. 나는 잠시 동안이 문제에 머리를 쓰다듬어왔다.SQL Column 첫 문자 다음에 Varchar 값을 자릅니다.

내 프로그램 유니 코드가 정의되어 있습니다. ODBC와 Sybase SQLAnywhere를 사용하고 있습니다. 이 프로그램은 컴파일러 오류없이 실행되고 삽입하려는 열은 varchar를 사용합니다. odbc32.lib의 SQLBindParameter를 windows server 2003에서 사용하고 있습니다 (WARNING :: legacy code incoming).

확인은 내가 정의한 단정입니다. EFields는 std :: map인데 TSTRING은 다음과 같이 정의됩니다.

typedef std::basic_string<TCHAR> TSTRING; 

여기 내 ODBC 코드입니다.

전달되는 문자열은 IP입니다. (이것은 10.1로 시작합니다). 나는 IPV6이 보편적으로 사용될 때 코드가 깨지지 않도록 varchar를 사용하도록 요청 받았다. 미리 감사드립니다.

+1

NVARCHAR 필드가 아닌 유니 코드를 사용하는 경우 '1'문자 (u0031 또는 리틀 엔디안 시스템에서는 0x3100)의 NULL (0x00) 부분이 문자열 종결 자로 간주 될 수 있습니다 ? – DaveE

+0

좋은 질문입니다. 알아 보겠습니다. – AlexLordThorsen

+0

그래서 NVARCHar로 변경하고 자르기를 중단했습니다. 나는 매우 어리 석다. – AlexLordThorsen

답변

0

데이터베이스에서 Varchar에서 Nvarchar로 변경하면 문제가 해결됩니다.

관련 문제