如何在动态建表,设置文本字段UNICODE为“是”?(200分)

B

blues

Unregistered / Unconfirmed
GUEST, unregistred user!
请教,在ACCESS数据库中,动态建表的时候,
如何设置文本类型的字段的UNIOCDE为‘是’
谢谢了,有200分送上
 
用 WITH COMPRESSION 子句
其实这在帮助里面说得很清楚了:
CREATE [TEMPORARY] TABLE表 (字段1类型 [(字长)] [NOT NULL] [WITH COMPRESSION | WITH COMP] [索引1] [, 字段2类型 [(字长)] [NOT NULL] [索引2] [, ...]][, CONSTRAINT multifieldindex [, ...]])

CREATE TABLE 语句分为以下几个部分:

部分 说明
table 欲创建的表的名称。
field1, field2 在新表中欲创建的字段的名称。至少必须创建一个字段。
type 在新表中的字段的数据类型。
size 字段的字符长度 (文本及二进制字段)。
index1, index2 子句定义多重字段索引的 CONSTRAINT 。欲了解有关如何建立此索引的更多信息,请看 CONSTRAINT 子句.
multifieldindex 子句定义多重字段索引的 CONSTRAINT 。欲了解有关如何建立此索引的更多信息,请看 CONSTRAINT 子句.


说明
使用 CREATE TABLE 语句来定义新表及它的字段以及字段条件。如果将一字段指定为 NOT NULL,则新记录的该字段值必须是有效的数据。

CONSTRAINT 子句在字段上可创建不同的限制,并可用来建立主键。可以使用 CREATE INDEX 语句在当前表上建立一个主键或附加索引。

可以在单一字段上使用 NOT NULL,或在用于单一字段或多重字段(名为 CONSTRAINT) 的 CONSTRAINT 子句中使用 NOT NULL。但是,一个字段只能使用一次 NOT NULL 限制。尝试多次应用此限制将导致运行错误。

建立 TEMPORARY 表时, 只能在建表的会话期间看见它。会话期终止时它就被自动删除。Temporary表能被不止一个用户访问。

WITH COMPRESSION 属性只能和 CHARACTER及 MEMO (也被称作 TEXT) 数据类型和它们的同义字一起使用。

WITH COMPRESSION 属性被加入 CHARACTER列是因为单码字符表示格式的变化。Unicode字符一律需要两个字节。对于现有的主要包含字符数据的 Microsoft Jet数据库,这可能意味着数据库文件被转换成 Microsoft Jet 4.0格式时字长会增加将近一倍。然而,从前由单字节字符群(SBCS)指示的众多字符群的Unicode 表示可以很容易地被压缩成一个单字节。 如果你用这一属性定义一个 CHARACTER 列,数据被储存时会自动压缩,从列中恢复时会自动解压缩。

MEMO 列也能被定义用来把数据存储成压缩格式。然而有个局限。只有在压缩时能达到最多4096字节的事例才可被压缩。 所有其他事例则不会被压缩。这就是说,在一个给定的表中,一个给定的MEMO列中有的数据会被压缩,有的则不会。
 
感谢回复,知道和WITH COMPRESSION有关,想请教具体的语句
CREATE TABLE TempTable1 (
SERIAL_NO integer ,
NAME char (30) not null primary key ,
FULL_NAME char(10) with Compression)
执行时不行的呦? 字段是TEXT的也不行,请教。
 
你的语法是没有错的,但不能在Access里面执行,在Delphi里:
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOConnection1.Close;
ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;' +
'Data Source=D:/Documents and Settings/Administrator/My Documents/db2.mdb';
ADOConnection1.Connected := True;
ADOConnection1.Execute(
'CREATE TABLE TempTable1 (' +
'SERIAL_NO integer ,' +
'NAME char (30) not null primary key ,' +
'FULL_NAME Text WITH COMPRESSION)');
end;

 
明白了,是AOD驱动的问题,我用的是ODBC Driver,谢谢,用JET可以,
不过请教,在ODBC的驱动下,用说明语法呢。
准备给分了,^_^
 
呵呵, 这个是Microsoft Jet Sql的语法
所以你肯定要用Microsoft.Jet.OLEDB连接才能执行的。
 

Similar threads

回复
0
查看
886
不得闲
D
回复
0
查看
750
DelphiTeacher的专栏
D
D
回复
0
查看
752
DelphiTeacher的专栏
D
D
回复
0
查看
600
DelphiTeacher的专栏
D
顶部