----------用ADO和ACCESS添加记录时怎么会出错?----------(50分)

  • 主题发起人 主题发起人 bobzane
  • 开始时间 开始时间
B

bobzane

Unregistered / Unconfirmed
GUEST, unregistred user!
代码是这样的:
with ADOTable1 do
begin
Insert;
FieldByName('name').AsString:=edti1.text;
FieldByName('phone').AsString:=edit2.text;
........
Post;
end;
在第一个文本框中,输入了姓名,比如张三,在edit2中,是空着的,没填。在post时候,
出现这样的严重错误:
Project Txl.exe raised exception class EOleException with message 'Field'txl.phone
cannot be a zero-length string'.process stopped. Use Step or Run to continue.
我想大概是说“电话”的那个字段长度不能为0。不过我不理解,在Access2000中建表的时候
也有空的字段,在程序中怎么就不行了,为什么?



 
Access表里面的字符串字段的值有三种:
NULL (没有值)
'' (空字符串)
'abc'(非空字符串)

Access2000建表的时候的空字段是Null,不是''。
建表结构的时候,字符串字段会有一个选项“允许空字符串”,你选择了否,也就是
说字段的值不能是'',但可以是NULL和'abc'。

你可以把“允许空字符串”设为是,或者在发现Edit2.text=''的时候,不更新Phone
字段(保留NULL值),就不会出错了。
 
就是一个空值的问题,我来晚了一步。
 
Infernal Goddess说的有道理!
 
谢谢大家,让我又学到些知识。三人行必有我师啊!

见者有分。
 
后退
顶部