因为ACCESS中的表中的字符字段有Unicode压缩属性,默认值为否,但我想让它为是,这样的CREATE该怎样写呢? 如:          sqlstr:='create table srb ( Jmsbh   char(50) PRIMARY KEY,' +
                                    ' Dqnf    char(50),' +
                                    ' Sr1     double,' +
                                    ' Dw1     char(50),' +
                                    ' Sr2     double,' +
                                    ' Dw2     char(50),' +
                                    ' Sr3     double,' +
                                    ' Dw3     char(50),' +
                                    ' Scbz    integer,' +
                                    ' Gxsj    Datetime' +
                                    ')';其中dw1,dw2,dw3我需要它们的Unicode压缩为是,该如何修改?

解决方案 »

  1.   

    //from
    http://bbs.yesky.com/book/html/2403.html
    Unicode压缩 现在在Microsoft Jet 4.0 数据引擎中,所有的TEXT数据类型都是以两个字节的统一编码形式存储的。它取代了前面版本中采用的多字节字符集(Multi-byte Character Set ,MBCS)格式。虽然双字节的格式需要更多的空间来存储每个字符,但可以定义使用TEXT数据类型的自动进行压缩。 在用户使用SQL建立的TEXT的数据类型时,双字节编码的压缩属性缺省设置为NO,如果需要将该属性设置为Yes,用户可以在定义域的时候使用WITHCOMPRESSION (或者 WITH COMP)关键字。 下面的CREATE TABLE 语句将创建一个新的顾客表,这里将双字节编码的压缩属性设置为Yes。 CREATE TABLE tblCompressedCustomers ( 
    CustomerID INTEGER CONSTRAINT 
    PK_tblCompCustomers PRIMARY KEY, 
    [Last Name] TEXT(50) WITH COMP NOT NULL, 
    [First Name] TEXT(50) WITH COMPRESSION NOT NULL, 
    Phone TEXT(10), 
    Email TEXT(50), 
    Address TEXT(40) DEFAULT Unknown) 
    注意WITH COMPRESSION 和WITH COMP关键字要在NOT NULL之前定义。用户也可以使用ALTER TABLE语句改变现存域的双字节编码的压缩属性,如下所示: ALTER TABLE tblCustomers 
    ALTER COLUMN [Last Name] TEXT(50) WITH COMPRESSION 
    注意: 在上面的SQL语句中列示的WITH COMPRESSION and WITH COMP关键字只能通过Jet OLE DB provider 和ADO来执行,在Access SQL View的用户界面中使用将导致错误信息。 
      

  2.   

    /** Access2000 + ADO测试通过 **/create table srb ( Jmsbh   char(50) PRIMARY KEY,
    Dqnf    char(50),
    Sr1     double,
    Dw1     char(50) WITH COMPRESSION,
    Sr2     double,
    Dw2     char(50) WITH COMPRESSION ,
    Sr3     double,
    Dw3     char(50) WITH COMPRESSION ,
    Scbz    integer,
    Gxsj    Datetime
    )
      

  3.   

    下面的CREATE TABLE 语句将创建一个新的顾客表,这里将双字节编码的压缩属性设置为Yes。 CREATE TABLE tblCompressedCustomers ( 
    CustomerID INTEGER CONSTRAINT 
    PK_tblCompCustomers PRIMARY KEY, 
    [Last Name] TEXT(50) WITH COMP NOT NULL, 
    [First Name] TEXT(50) WITH COMPRESSION NOT NULL, 
    Phone TEXT(10), 
    Email TEXT(50), 
    Address TEXT(40) DEFAULT Unknown) 
    注意WITH COMPRESSION 和WITH COMP关键字要在NOT NULL之前定义。用户也可以使用ALTER TABLE语句改变现存域的双字节编码的压缩属性,如下所示: ALTER TABLE tblCustomers 
    ALTER COLUMN [Last Name] TEXT(50) WITH COMPRESSION 
    注意: 在上面的SQL语句中列示的WITH COMPRESSION and WITH COMP关键字只能通过Jet OLE DB provider