3
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)
)

上記のクエリは機能しません。エラー メッセージには次のように表示されます。

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 です。

どなたかご存知の方アドバイスお願いします。

ありがとう!

4

1 に答える 1

4

このエラーはNOT NULL、ADS_VFP (Visual FoxPro) テーブル タイプでのみサポートされている を使用することによって発生します。

Advantage で処理NOT NULLする通常の方法は、ADS データ ディクショナリを介して接続し、CONSTRAINT NOT NULL代わりに構文を使用することです。ただし、(データディクショナリにないテーブル)接続では機能しfree tableません-空きテーブルに変更しようとするとCONSTRAINT NOT NULL、エラーが発生しますThe field-level or record-level constraint is invalid. Field level constraints are not supported on free table.

これは、ADS 9.1 ヘルプのCREATE TABLEの下に記載されています。

vfp オプション ::= NULL | NULL ではない | NOCPTRANS

これらのオプションは、Visual FoxPro テーブル (ADS_VFP) に適用され、フリー テーブルとデータ ディクショナリ テーブルで使用できます。NULL (および NOT NULL) オプションは、列が NULL 値を物理的に保持できるかどうかを示します。これは、NOT NULL 制約とは異なります。NULL オプションを指定せずに Visual FoxPro 列を作成した場合、その列に NULL を格納しようとするとエラーが発生します。NOCPTRANS オプションは、Visual FoxPro の文字型とメモ型のフィールドに適用されます。このオプションを指定すると、データはコードページ間で変換されません (ANSI/OEM 変換)。

ところで、で構文エラーが発生しARC32、SQL があなたのように構造化されている場合、カーソルはエラーの原因となっている行にあります。この場合、最初の列定義 ( ORDERNO CHAR(9) NOT NULL) でエラーが発生しました。その単一の列定義を変更して削除するNOT NULLと、次の行でエラーが発生します。

于 2012-08-06T21:32:38.787 に答える