2011-12-20 2 views
0

내가 97 기존 Access에서 테이블을 만드는거야 설정하는 방법'데이터베이스에 다음 명령을 :표 만들기 '데이터베이스 - 유니 코드 압축

OleDbCommand cmd_createPlaylistNames2 = new OleDbCommand("CREATE TABLE PlaylistNames2 ([Anagnorisi] long, [PlaylistName] TEXT(50) WITH COMPRESSION, [PlaylistMaker] TEXT(50) WITH COMPRESSION," + 
      " [Duration] TEXT(50) WITH COMPRESSION, [Comments] TEXT(50), [FromAutomation] BIT, Primary Key (Anagnorisi))", con); 

나는 다음의 데이터로 테이블을 채우기 데이터 세트. Office에서 데이터베이스를 열 때 WITH COMPRESSION으로 설정된 필드의 유니 코드 압축 속성이 No로 설정되었습니다. 왜 이런 현상이 발생합니까?

편집 :

신경 끄시 고, 내가 DAO와 유니 코드 압축에 필드를 설정했습니다.

dao.DBEngine dbeng = new dao.DBEngine(); 
dao.Workspace wrkspc = dbeng.CreateWorkspace("", "admin", "", dao.WorkspaceTypeEnum.dbUseJet); 
dao.Database db = wrkspc.OpenDatabase("C:\\Users\\user\\Desktop\\Merge2\\playlists.MDB", false, false, ""); 
dao.TableDef tabledef = db.TableDefs["PlaylistNames"]; 
dao.Field name = tabledef.Fields["PlaylistName"]; 
dao.Field maker = tabledef.Fields["PlaylistMaker"]; 
dao.Field duration = tabledef.Fields["Duration"]; 
dao.Field comments = tabledef.Fields["Comments"]; 

dao.Property propName = name.CreateProperty("UnicodeCompression", 1, -1, false); 
name.Properties.Append(propName); 

dao.Property propMaker = maker.CreateProperty("UnicodeCompression", 1, -1, false); 
maker.Properties.Append(propMaker); 

dao.Property propDuration = duration.CreateProperty("UnicodeCompression", 1, -1, false); 
duration.Properties.Append(propDuration); 

dao.Property propComments = comments.CreateProperty("UnicodeCompression", 1, -1, false); 
comments.Properties.Append(propComments); 

wrkspc.Close(); 

답변

1

Access 97은 Jet 3.5를 사용합니다. 텍스트의 16 비트 저장은 Jet 4.0에서 도입되었습니다. 따라서 UnicodeCompression 플래그의 값이 무엇이든, 데이터베이스 버전이 4보다 작 으면 파일에서 1 바이트 문자를 사용하고있는 것을 알 수 있습니다.

+0

저는 실제로 Jet 4.0을 사용하고 있습니다. – Pantelis

+1

@Pantelis 파일이 Access 97 데이터베이스 인 경우 Jet 3.5 형식입니다. 유니 코드 압축은 파일에 문자가 저장되는 방식을 제어하기 때문에 유니 코드 압축의 관련 여부를 지정하는 파일 형식입니다. 물론 Jet 4.0을 사용하여 Jet 3 파일을 읽을 수도 있지만 Jet 3 파일의 싱글 바이트 문자와 다른 문자 사이의 변환으로 인해 컴퓨터의 코드 페이지를 변경하면 텍스트 데이터가 변경되는 것으로 나타납니다. Jet 4 라이브러리의 2 바이트 문자 – phoog