http://www.360doc.com/content/11/0118/20/991597_87447868.shtml

https://microsoft.public.data.ado.narkive.com/35gKl1SX/adox-access-table-creation-with-nullable-columns-in-c

http://tec.liugens.com/html/sql/20071227/38157.html

http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_20510684.html

Answer

by:hinnackPosted on 2003-02-12 at 07:58:51ID: 7934487

HI,
the only working way i know is using DAO!

dbengine = CreateOLEObject("DAO.DbEngine.36");
db = dbengine.OpenDatabase('db\extract.mdb');
db.TableDefs(tbl).Fields(clo).AllowZeroLength = True;
db.Close;

so use this for late-binding or import the type-lib.

As far as I know ther is no DDL Code nor a working ADOX function.

greetings

Hinnack

其实ADOX也可以的。

var 
access:OleVariant; begin access := CreateOleObject('ADOX.Catalog'); access.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\zz\temp.mdb'); access:=null; try tmpQuery := TAdoQuery.Create(nil); tmpQuery.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\zz\temp.mdb;Persist Security Info=False'; with tmpQuery do begin Close; Sql.Clear; Sql.Add('CREATE TABLE T_test '); Sql.Add('( '); Sql.Add('t_a1 varchar(10), '); Sql.Add('t_a2 varchar(20) '); Sql.Add(')'); ExecSql; end; access:=CREATEoleoBJECT('adox.catalog'); access.activeconnection:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\zz\temp.mdb;Persist Security Info=False'; access.Tables['T_Test'].Columns['t_a1'].Properties('Jet OLEDB:Allow Zero Length'):=true; MessageBox(HANDLE,'成功创建。','提示',MB_OK MB_ICONINFORMATION); finally tmpQuery.Free; end; end; ADOX没有连接到MDB,当然有问题

Access数据库的“必填字段”和“允许空字符串”属性的理解

(2013-05-05 02:23:53)

   
关于Access数据库的字段属性“必填字段”和“允许空字符串”的设置,虽然搞不懂,但感觉这样确实比较好一点:在程序中用代码检测,如果为空值则提示必须填写即可。

 
下面也有解释,但有点头晕。。。

 
 
引用baidu知道其他人的回答:
 
什么是空字符串和Null值:Microsoft Access可以区分两种类型的空值。因为在某些情况下,字段为空,可能是因为信息目前无法获得,或者字段不适用于某一特定的记录。例如,表中有一个“电话号码”字段,将其保留为空白,可能是因为不知道顾客的电话号码,或者该顾客没有电话号码。在这种情况下,使字段保留为空或输入Null值,意味着“不知道”。双引号内为空字符串则意味着“知道没有值”。采用字段的“必填字段”和“允许空字符串”属性的不同设置组合,可以控制空白字段的处理。“允许空字符串”属性只能用于“文本”、“备注”或“超级链接”字段。“必填字段”属性决定是否必须有数据输入。当“允许空字符串”属性设置为“是”时,Microsoft Access将区分两种不同的空白值:Null值和空字符串。如果允许字段为空而且不需要确定为空的条件,可将“必填字段”和“允许空字符串”属性设置为“否”,作为新“文本”、“备注”或“超级链接”字段的默认设置。
     如果只允许没有字段记录值时使字段为空,可将“必填字段”属性和“允许空字符串”属性都设置为“是”。在这种情况下,使字段为空的唯一方法是键入不带空格的双引号,或按空格来输入空字符串。如果不希望字段为空,可将“必填字段”属性设置为“是”,将“允许空字符串”属性设置为“否”。如果希望区分字段空白的两个原因为信息未知和没有信息,可将“必填字段”属性设置为“否”,将“允许空字符串”属性设置为“是”。在这种情况下,添加记录时,如果信息未知,应该使字段保留空白(即输入Null值);如果没有提供给当前记录的值,则应该键入不带空格的双引号(" ")来输入一个空字符串。如何查找空字符串和Null值:如果用户需要将表中含有空字符串和Null值的记录做相应的修改,就需要使用“编辑”菜单上的“查找”命令来查找Null值或空字符串的位置。方法是在“数据表”视图或“窗体”视图中,选择要搜索的字段,在“查找内容”框中键入“Null”来查找Null值,或键入不带空格的双引号(””)来查找空字符串,在“匹配”框中选择“整个字段”,并确保已清除“按格式搜索字段”复选框。一般来说,在以升序来排序字段时,任何含有空字段(包含Null值)的记录将列在列表中的第一条。如果字段中同时包含Null值和空字符串,包含Null值的字段将在第一条显示,紧接着是空字符串。
查询的条件不一样
 
 
 
经过我自己的试验,得出来的结论是:
 
前提temp表,czydm列,是文本型的
 
1:czydm列允许空字符串为是、必填字段为否、无默认值,如果该字段的值为空即使有空格,要查询该行数据,必须用select * from temp where czydm is null才能查询出来,用czydm=‘’ 则查不出来
 
               列允许空字符串为是、必填字段为否、有默认值为"",则不录入czydm列的值是,用czydm=‘’可以查出数据,如果设置该列值之后,又把该列值清空,则需要czydm is null 才能查出来 
 
               列允许空字符串为是、必填字段为是,没有默认值"",则会提示不能存储为null的值,所以设置默认值为"",此时,需要用czydm=‘’才能查处为空的数据
 
 
 
2:czydm列允许空字符串为否、必填字段为否,此时不能设置默认值为"",否则会提示不允许字符串长度为0的项,在不设置默认值的情况下,则也是需要czydm is null才能取到为空的数据,如果设置必填字段为是,则这个字段必须填了
 
总结:必填字段基本上决定了该字段是存储空值还是null值,为否时存储的是null值,为是时存储的是""
 
所以做数据库的时候,
 
       要么设置czydm 允许空字符串为是、必填字段为否、无默认值,这样可以用 czydm is null来查询czydm列为空值的数据,即使czydm列里的值为空格,也可以查询出来
 
       要么设置czydm 允许空字符串为是、必填字段为是、默认值为"",这样可以用czydm=‘’ 来查询空值数据,即使czydm列的值有多个空格,也可以查询出来
 
 
 
来源:http://xiaozhu39505.blog.163.com/blog/static/76386641201172473449256/

Allow Zero Length 允许空字符串 ACCESS的更多相关文章

  1. Access空字符串和Null值

    什么是空字符串和Null值: Microsoft Access可以区分两种类型的空值.因为在某些情况下,字段为空,可能是因为信息目前无法获得,或者字段不适用于某一特定的记录.例如,表中有一个“电话号码 ...

  2. sql server 之函数小技巧 && 整数类型为空是用空字符串替代实现

    1.判空函数 说明:使用指定的替换值替换 NULL. 语法:ISNULL ( check_expression , replacement_value ) 参数: check_expression:将 ...

  3. Javascript 中的false、0、null、undefined和空字符串对象

    在Javascript中,我们经常会接触到题目中提到的这5个比较特别的对象——false.0.空字符串.null和undefined.这几个对象很容易用错,因此在使用时必须得小心. 类型检测 我们下来 ...

  4. 【转】Javascript 中的false,零值,null,undefined和空字符串对象

    js 开发中经常会碰到判断是否为空的情况,关于 null 和 undefined 的区别了解的不是很好,刚好看见这篇文章,转过来学习一下,以下是转载正文: 在Javascript中,我们经常会接触到题 ...

  5. Java空字符串与null的区别和判断字符串是否为空的方法

    Java空字符串与null的区别: 1.类型null表示的是一个对象的值,而并不是一个字符串.例如声明一个对象的引用,String a = null ;""表示的是一个空字符串,也 ...

  6. Oracle坑之-空字符串与NULL

    空字符串与NULL 首先有如下代码 SELECT * FROM Pdc_DataDomain DD INNER JOIN Pdc_DD_Table DDT ON DD.DataDomainID = D ...

  7. Javascript 中的false,零值,null,undefined和空字符串对象

    在Javascript中,我们经常会接触到题目中提到的这5个比较特别的对象--false.0.空字符串.null和undefined.这几个对象很容易用错,因此在使用时必须得小心. 类型检测 我们下来 ...

  8. Java进阶(二十一)java 空字符串与null区别

    java 空字符串与null区别 1.类型 null表示的是一个对象的值,而并不是一个字符串.例如声明一个对象的引用,String a = null ; ""表示的是一个空字符串, ...

  9. 统一修改表单参数(表单提交的空字符串统一转null)

    统一修改表单参数(表单提交的空字符串统一转null) 1.介绍: 我们业务中有时会遇到提交的表单中某个参数为空字符串,导致后台接受的为空字符串("")而不是我们理想中的null,会 ...

随机推荐

  1. Python3基础 json.loads 解析json格式的数据,得到一个字典

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  2. Zookeeper一致性协议原理Zab

    ZooKeeper为高可用的一致性协调框架,自然的ZooKeeper也有着一致性算法的实现,ZooKeeper使用的是ZAB协议作为数据一致性的算法, ZAB(ZooKeeper Atomic Bro ...

  3. 1-20 RHEL7的启动原理和服务控制

    大纲: RHEL7启动原理 RHEL7服务启动配置 网络概述 发布内网服务器 ############################################################ ...

  4. ActiveMQ 集群配置 高可用

    自从activemq5.9.0开始,activemq的集群实现方式取消了传统的Pure Master Slave方式,增加了基于zookeeper+leveldb的实现方式,其他两种方式:目录共享和数 ...

  5. sql server文件另存为的时候,选择文件编码和换行

    文件编码 使用code page来标记的,没有找到utf8 without bom 换行

  6. ZOJ 3329 One Person Game (经典概率dp+有环方程求解)

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3329 题意:现在有三个骰子,分别有k1,k2和k3面,面上的点就是1~ki ...

  7. UVa 10970 大块巧克力

    https://vjudge.net/problem/UVA-10970 题意: 把一个m行n列的矩形巧克力切成mn个1×1的方块,需要切几刀. 思路: 可以考虑用动态规划的方法去做,当然,最简单的是 ...

  8. m_Orchestrate learning system---三十、项目中的dist文件一般是做什么的

    m_Orchestrate learning system---三十.项目中的dist文件一般是做什么的 一.总结 一句话总结: Bootstrap switch:dist 目录是放最终的js和css ...

  9. 读CSV文件

    /// <summary> /// 读取csv文件 /// </summary> /// <param name="csvPath">strin ...

  10. 10X Genomics vs. PacBio

    10X Genomics已经广泛应用于单细胞测序.组装领域,现在也是火的不行. 10X Genomics原理 通过将来自相同DNA片段(10-100kb)的reads加上相同的barcode,然后在i ...