数据库ACCESS2000;用连接.
datastr = CREATE TABLE 1101(name varchar(50), kahao varchar(50) primary key 
          references personinfo(kahao) on delete cascade,info varchar(50));
theApp.m_pConnection->Execute(datastr.AllocSysString(),NULL,adOptionUnspecified);
因为加上了"on delete cascade"而出现错误,去掉这个就可以成功建表.
请问这是为什么哦.
表personinfo中的字段kahao不是主键,是索引:有(无重复)

解决方案 »

  1.   

    先将你的sql语句在ACCESS里执行一次试试看
      

  2.   

    在ACCESS2000中执行时的错误提示是这样的.
    "CONSTRAINT 子句语法错误",点确定后,
    "delete"得焦, 点帮助帮助面板是空的.
    是不是access不支持这个啊.
    但我手动建立关系,可以啊,
      

  3.   

    不是所有的sql语句ACCESS都支持。
      

  4.   

    CONSTRAINT 子句
    限制和索引相似,虽然限制也能被用于建立和另一个表的关联。用 ALTER TABLE 和 CREATE TABLE 语句中的 CONSTRAINT 子句来建立或删除条件.CONSTRAINT 子句可分为两种类型:第一种是在单一字段上创建条件;第二种是在一个以上的字段上创建条件。
    --------------------------------------------------------------------------------注意 Microsoft Jet 数据库引擎并不支持使用 CONSTRAINT ,或任何非 Microsoft JET 数据库的数据定义语言 (DDL) 语句。而使用 DAO创建方法。
    --------------------------------------------------------------------------------语法
    单一字段条件: CONSTRAINT名 {PRIMARY KEY | UNIQUE | NOT NULL |
         REFERENCES 外部表 [(外部字段1,外部字段2)]
        [ON UPDATE CASCADE | SET NULL]
        [ON DELETE CASCADE | SET NULL]}多重字段条件: CONSTRAINT名
        CONSTRAINT name
    {PRIMARY KEY (primary1[, primary2 [, ...]])|
        |
    UNIQUE (unique1[, unique2 [, ...]])|
        |
    NOT NULL (notnull1[, notnull2 [, ...]])|
        FOREIGN KEY [NO INDEX] (ref1 [, ref2 [, ...]])REFERENCES foreigntable [(foreignfield1 [, foreignfield2 [, ...]])]}
        [ON UPDATE CASCADE | SET NULL]
        [ON DELETE CASCADE | SET NULL]} 子句可分为以下几个部分:部分 说明 
    name 欲创建的条件的名称。 
    primary1, primary2 被指定为主键.的字段名。 
    unique1, unique2 欲设计成为唯一键的一个或多个字段之名称。 
    notnull1, notnull2 被限制为非 Null 值的字段的名称。 
    ref1, ref2 涉及到另一个表中的字段的外部键字段名 
    foreigntable 包含由外部字段注明的字段的外部表名。 
    foreignfield1, foreignfield2 由 ref1、ref2 指定的 foreigntable 中的字段的名称。如果引用的字段是 foreigntable 的主键,则可省略此子句。 
    说明
    紧接在字段的数据类型规格之后,在 ALTER TABLE 或 CREATE TABLE 语句的字段定义子句中,使用单一字段条件之语法。只要在 ALTER TABLE 或 CREATE TABLE 语句的字段定义子句之外使用保留字 CONSTRAINT,就可以使用多重字段条件之语法。使用 CONSTRAINT,可以将字段设计为如下的条件类型之一: 可以使用 UNIQUE 保留字将字段设计为唯一键。这意味着在同一个表中没有两个记录的这个字段的值是相同的。可以强制任何字段或字段列表为唯一的。如果多重字段条件被设计成唯一键,在索引之中的所有字段的组合值必须也是唯一的,即使在这些字段之中有两个或两个以上的记录有相同的值。 
    可以用 PRIMARY KEY 保留字,将表中的字段或一组字段设计为主键。在主键之中所有的值必须是唯一的,且不可为 Null,一个表只能有一个主键。 
    --------------------------------------------------------------------------------注意 在一个已经设有主键的表中,不能再设置 PRIMARY KEY 条件,否则会发生错误。 
      

  5.   

    那也就是说access本身并不支持
    要实现的话,得用DAO连接数据库了.
    那如果硬是要实现此功能,只能在程序中对每一个表进行更新也删除了.