我有一个access的数据表,其中有一个User表,我想在User表中增加字段"Type",类型为“文本”,并且默认值为“青年”,我写了下面的语句,可是报错
Alter Table User Add Type Null Default("青年")
还有,在access中文本类型有一个限制就是“允许空字符串”,怎样在sql中将它设为“是”

解决方案 »

  1.   

    我是这样建:
    procedure Tfrm_Record.CreateIdentMDB;
    var
      CreateAccess:OleVariant;
    begin
      CreateAccess:=CreateOleObject('ADOX.Catalog');
      CreateAccess.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+FilePath + 'Ident.mdb');
      CreateAccess := Unassigned;
      //CreateAccess := null;
      ADOQ_Class.Close;
      ADOQ_Class.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + FilePath + 'Ident.mdb';
      ADOQ_Class.SQL.Clear;
      ADOQ_Class.SQL.Text := 'Create Table UserInfo ' +
                             '(' +
                             'ID IDENTITY,' +  // 自动增量
                             'UserName varchar(20) not null,' + // 为能为空
                             'UserSex Bit,' +  // 布尔
                             'UserMarry Bit,' +
                             'UserAge VarChar(16),' +
                             'UserIdentity VarChar(18),' +
                             ')';
      ADOQ_Class.ExecSQL;
      ADOQ_Class.Close;
    end;
      

  2.   

    呵呵,对不起,你是增加,你的有问题,没有设置类型
    我测度过的代码如下:
      ADOQ_Class.Close;
      ADOQ_Class.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + FilePath + 'Ident.mdb';
      ADOQ_Class.SQL.Clear;
      ADOQ_Class.SQL.Text := 'Alter Table UserInfo Add Type VarChar(10) NULL DEFAULT  青年)';
      adoq_class.ExecSQL;
      adoq_Class.Close;
      

  3.   

    不行啊,ACCESS说  DEFAULT  青年 有错误!
      

  4.   

    我的意思是 使到这一个字段能有一个默认值,SQL语句不能通过
      

  5.   

    不可能吧,你是怎么写的,我用下面代码是测试过的,没问题
    procedure Tfrm_Record.BitBtn1Click(Sender: TObject);
    begin
      ADOQ_Class.Close;
      ADOQ_Class.ConnectionString :=
       'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + FilePath + 'Ident.mdb';
      ADOQ_Class.SQL.Clear;
      ADOQ_Class.SQL.Text :=
       'Alter Table UserInfo Add Type VarChar(10) NULL DEFAULT  青年';
      adoq_class.ExecSQL;
      adoq_Class.Close;
    end;
      

  6.   

    我的真的不能通过,我用的是access 2000