2012-08-06 52 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會使下一行發生錯誤。