2012-08-06 58 views
2
create table WEBLOG 
(
ORDERNO CHAR(9) NOT NULL, 
USERNAME CHAR(50) NOT NULL, 
ACTION CHAR(255) NOT NULL, 
NOTE MEMO, 
UPDATEDATE DATE NOT NULL, 
UPDATETIME TIME NOT NULL, 
IP CHAR(15), 
PK CHAR(36) NOT NULL, 
PRIMARY KEY(PK) 
) 

上面的查询不起作用,错误消息说,创建表,利用数据库9.1,与PK

ERROR IN SCRIPT: poQuery: Error 7200: AQE Error: State = HY000; NativeError = 2215; [iAnywhere Solutions][Advantage SQL Engine]Invalid create options: 
NOCPTRANS and nullable column type options are only valid with ADS_VFP table type. -- Location of error in the SQL statement is: 23 (line: 3 column: 1) 

有什么错查询?

我的优势数据库版本是9.1。

有人知道,请指教我。

谢谢!

+0

改为将SQL更改为'PK CHAR(36)PRIMARY KEY'。我相信这是在PK CHAR(36)NOT NULL之后的外部'',并且增加了导致它的最后一行(这在句法上是无效的)。 – 2012-08-06 20:25:35

+0

@Ken White我更改为'PK CHAR(36)PRIMARY KEY',但仍然是相同的错误消息。 – 2012-08-06 20:33:35

+0

你在用什么语言工作?您为查询设置了哪些AdsTableType? – 2012-08-06 20:35:24

回答

4

此错误是由于只使用ADS_VFP(Visual FoxPro)表类型支持的NOT NULL引起的。

通过Advantage处理NOT NULL的常见方法是通过ADS数据字典进行连接,然后使用CONSTRAINT NOT NULL语法代替。它不会(在数据字典表不)连接上free table工作,但是 - 想只是将其更改为CONSTRAINT NOT NULLThe field-level or record-level constraint is invalid. Field level constraints are not supported on free table.

这在ADS 9.1 help记录,特别是在CREATE TABLE错误有空桌的结果:

vfp-option :: = NULL | NOT NULL | NOCPTRANS

这些选项适用于Visual FoxPro表(ADS_VFP),可用于空闲表和数据字典表。 NULL(和NOT NULL)选项指示列是否能够物理地保存NULL值。这与NOT NULL约束不同。如果Visual FoxPro列创建时没有NULL选项,那么如果尝试在该列中存储NULL,则会生成错误。 NOCPTRANS选项适用于Visual FoxPro字符和备注字段类型。如果提供此选项,则不会跨代码页翻译数据(ANSI/OEM转换)。

顺便说一句,当你在ARC32得到语法错误,你的SQL结构像你的是,光标在导致错误的行。在这种情况下,错误是由第一列定义引起的(ORDERNO CHAR(9) NOT NULL)。更改该单列定义以删除NOT NULL会使下一行发生错误。