我想在Delphi中用ADOX创建一个Access表,请问如何设置一个字段的允许为空属性。

解决方案 »

  1.   

    sqlstr:='Create Table ';
        sqlstr:=sqlstr+tablename+' (ID int NOT NULL,Name varchar(50) NOT NULL,Type varchar(50) NULL,';
        sqlstr:=sqlstr+'length int NULL,CFormula text NULL,EFormula text NULL,Bvalue varchar(50) NULL';
        sqlstr:=sqlstr+',Nodetype varchar(50) NULL,Parent int NULL,sort int NULL,Visible bit,SB bit,Readonly bit)';
      

  2.   

    您用的是语句用ADOX可以实现吗?
      

  3.   

    我回家找找,以前写过的,忘了。ADOX感觉控制不便,能不用则不用吧。
      

  4.   

    我是用的SQL,ADOX应该这样:
    加上uses Activex, Comobj, AdoInt等
    procedure NewColumn(var AColumns: OleVariant); //AColumns是某Table的Columns对象
    const
      NULL_ATTRIBUTES: array[boolean] of integer = ($00000001, $00000002);
    var
      AColumn: OleVariant;
    begin
      AColumn := CreateOleObject('ADOX.Column');
      AColumn.Name := 'Field1';
      AColumn.Type        := adVarWChar;
      AColumn.DefinedSize := 100;
      AColumn.Attributes  := NULL_ATTRIBUTES[True]; //是否允许null
      AColumns.Append(AColumn); //添加
      AColumn.Properties['Description'].Value := 'Description';
      AColumn.Properties['Jet OLEDB:Allow Zero Length'].Value := True;  //是否允许空字符串