문제

었에 테이블을 작성 SQL Server CE 고 그것을 실현을 지원하지 않 varchar.

고 이것을 발견,"non-유니코드 텍스트 컬럼(varchar,char,텍스트)및 smallmoney 은 지원되지 않음;하지만 이며,nchar 원과 돈을 지원하는대로" 에 명시된 MSDN.

이것이 진리입니까?왜 이것이 정확히?그것은 것으로 보인 컴팩트 데이터베이스를 지원하는 데이터 형식을 취할 적은 바이트 를 저장하는...나는 가정하면 그것은 더 많은 공간을 저장하는 유니코드 문자입니다.

무엇이 이 뒤에 이유?

도움이 되었습니까?

해결책

아마도 Windows CE가 완전히 유니 코드 기반이며 모든 문자열이 그런 식으로 저장되기 때문일 것입니다.

다른 팁

나는 생각한 그들은 줄이기 위해 노력하고 자신의 배포를 공간 및 인터페이스를 단순화하기 위해.는 아마을 피하려고 노력하는 배포를 더 버전의 Dll 을(유니코드 대 non-유니코드 버전).

네 그것은 사실은 그들만이 유니코드를 지원합니다.

그러나지 않는 자동으로 그것을 의미하는 2 바이트를 저장할 수 있습니다.당신을 인코딩할 수 있는 데이터베이스 계층에서 기본적으로 스트립의 첫 번째 바이트를 할 때 그것은 필요하지 않습니다.많은 데이터베이스 엔진이 이렇게하는 수단으로 압축에 있습니다.

그것은 단지는 것을 의미하는 모든 항목을 사용하는 두 바이트로 설정해야 약간의 오버헤드를 추가 마커를 말하고 엔진 시퀀스가 사용하는 두 개의 바이트입니다.그렇지 않으면 하나의 바이트는 여전히 수 있는 디스크에 저장되고 확장의 일환으로 RowData 읽습니다.

가장 컴팩트한 데이터베이스는 항상 사용하는 형태의 runlength 압축하는 경우 실제로 그들을 넣어 바이트를 하기 위해서는 디스크 공간이 절약됩니다.는 형식으로 발생하에 그것을 볼 때 그 밖으로 엔진에서 드물게 일치하는 실제로 디스크에 저장됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top