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. stm32 pwm 电调 电机

    先上代码 python 树莓派版本,通俗表现原理.stm32 C语言版本在后面 import RPi.GPIO as GPIO import time mode=2 IN1=11 def setup( ...

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

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

  3. PHP框架CI(codeigniter)的使用笔记

    流程图: 控制: 1.当想在控制类中直接跳转到其它控制类时,可以使用redirect()函数. 2.session的应用,在分页查询的时候可以用session(普通的get方式对CI来说太麻烦了):在 ...

  4. python ros 使用launch文件启动脚本

    目录结构 在包里面新建scripts文件夹,里面放运行的脚本文件,记得设置执行权限 然后新建launch文件夹,新建launch文件按照如下格式写: <node pkg="initia ...

  5. django 接口

    ajax部分: <html> <script type="text/javascript" src="./jquery-2.1.4.min.js&quo ...

  6. set/multiset_01

    按序排列 不能指定插入位置 红黑树变体 不可以直接存取元素(即 无[?]/at(?)操作) 不可以直接修改元素值(用 先删除后添加的方式,达到相同效果) A.头尾 添加/移除 B.随机存取 C.数据存 ...

  7. BN层

    论文名字:Batch Normalization: Accelerating Deep Network Training by  Reducing Internal Covariate Shift 论 ...

  8. Codeforces 913D - Too Easy Problems

    913D - Too Easy Problems 思路:二分check k 代码: #include<bits/stdc++.h> using namespace std; #define ...

  9. Java 集合-List接口和三个子类实现

    List List:有序的 collection(也称为序列).此接口的用户可以对列表中每个元素的插入位置进行精确地控制.用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素.与 ...

  10. Linux下安装Phantomjs

    1. 安装linux系统的软件包 先来看一下官方网站的提示: Note: For this static build, the binary is self-contained. There is n ...