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. 关于jquery所有动画都有速度和动画的方向(在宽度方向上的动画)?

    不只是jquery的 animate 动画, 才有时间的 参数, 实际上, 在所有的动画中, 包括: show/hide/toggle, slideup/slidedown/slidetoggle, ...

  2. 第几天|2018年蓝桥杯B组题解析第一题-fishers

    标题:第几天 2000年的1月1日,是那一年的第1天. 那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数,不要填写任何多余内容. 思路:计算日期,用excel计算两个日期的差 ...

  3. react 为元素添加自定义事件监听器

    https://zhenyong.github.io/react/tips/dom-event-listeners.html class MovieItem extends React.Compone ...

  4. 遍历GroupBox上的所有的textbox

    foreach (Control c in groupBox1.Controls) { if (c is TextBox) { //这里写代码逻辑 } } 遍历的时候,需要用Control遍历: 如果 ...

  5. 【TCP/IP详解 卷一:协议】第一章概论 学习笔记

    第一章 概述 游览了一下,本章主要是简介OSI模型的低层(1-4层).介绍了TCP/IP协议族的相关知识. TCP/IP的分层 Application <--> TCP / UDP < ...

  6. POJ 3744 Scout YYF I(矩阵快速幂优化+概率dp)

    http://poj.org/problem?id=3744 题意: 现在有个屌丝要穿越一个雷区,雷分布在一条直线上,但是分布的范围很大,现在这个屌丝从1出发,p的概率往前走1步,1-p的概率往前走2 ...

  7. Spring 入门 web.xml配置详解

    Spring 入门 web.xml配置详解 https://www.cnblogs.com/cczz_11/p/4363314.html https://blog.csdn.net/hellolove ...

  8. SRM 596 DIV2

    250pt: 直接枚举跳过的位置求和即可. int n,m; int ABS(int a) { ) return (-a); else return a; } class FoxAndSightsee ...

  9. 51nod 1042 数字0-9的数量 数位dp

    1042 数字0-9的数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 给出一段区间a-b,统计这个区间内0-9出现的次数.   比如 10-1 ...

  10. JavaScript页面跳转的一些实现方法

    第一种 <script language=”javascript” type=”text/javascript”> window.location.href=”login.jsp?back ...