在vb6.0为什么不能将日期字段设空值?,散分!

oralce1 2003-01-23 05:52:16
实验如下:

1、在SQL SERVER中的PUBS数据库上建立一个表:
USE PUBS
GO
CREATE TABLE TABLE1(
dateTime1 DATETIME,
CHAR1 CHAR(10))
GO
2、在ODBC中建立PUBS的连接。
3、打开VB6,外接程序->外接程序管理器,添加数据窗体向导。
向导生成时用ADO代码。

当你添加,只向CHAR1输入字符,dateTime1不输入任何字符,
更新是成功的!
当你添加,向CHAR1输入字符,向dateTime1输入任何字符,
然后清空dateTime1的字符。
更新是不成功!错误:
"-2147217887多步操作产生错误。请检查每一步的状态值。"
为什么?
...全文
125 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
oralce1 2003-01-27
  • 打赏
  • 举报
回复
no answers is satisfaction to solve problem!
ketao_78 2003-01-27
  • 打赏
  • 举报
回复
shi
wshlxvb 2003-01-24
  • 打赏
  • 举报
回复
用SQl server 的企业管理器建数据库不行吗, 和你的字段设置一样, 在企业管理器中完全没有错误啊!
oralce1 2003-01-24
  • 打赏
  • 举报
回复
thank you!
there are also problems!
我在更新前加了这样一句:
adoPrimaryRS.Fields("dateTime1").Value = Null
整个更新过程这样:
Private Sub cmdUpdate_Click()
On Error GoTo UpdateErr

adoPrimaryRS.Fields("dateTime1").Value = Null

adoPrimaryRS.UpdateBatch adAffectAll

If mbAddNewFlag Then
adoPrimaryRS.MoveLast '移到新记录
End If

mbEditFlag = False
mbAddNewFlag = False
SetButtons True
mbDataChanged = False

Exit Sub
UpdateErr:
MsgBox Err.Description
End Sub

当你添加,向CHAR1输入字符,向dateTime1输入任何字符,
然后清空dateTime1的字符。
更新是不成功!错误:
"-2147217887多步操作产生错误。请检查每一步的状态值。"

thank you zw_yu(鱼猫)
i don't use SQL ,because it's too much changed!
zw_yu 2003-01-24
  • 打赏
  • 举报
回复
dateTime1默认直设为null,如果不想输入时间:

insert table1 values(null,'char1')
update TABLE1 set datetime1=null,CHAR1=''
minajo21 2003-01-24
  • 打赏
  • 举报
回复
同意loveup(唉!喲呵)
jdcxf 2003-01-24
  • 打赏
  • 举报
回复
用isnull() 来解决,如果解决了也就不管是VB还是SQL的问题了,我们的目的在于如果完成任务。
oralce1 2003-01-24
  • 打赏
  • 举报
回复
trace it and find
" adoPrimaryRS.UpdateBatch adAffectAll" get this error!
8Cloud8 2003-01-24
  • 打赏
  • 举报
回复
把错误语句关闭,看看在那句出错,在让大家帮你想办法
oralce1 2003-01-24
  • 打赏
  • 举报
回复
请大家注意实验过程。用VB6 。0添加数据,更新数据。
lxcc 2003-01-24
  • 打赏
  • 举报
回复
datetime 为空需赋值null
悟空师傅来了 2003-01-24
  • 打赏
  • 举报
回复
接分!谢谢!
SW515 2003-01-24
  • 打赏
  • 举报
回复
老大,你还是在表中增加一个主关键字吧,要不以后还有更多让你头大的呢!
流星尔 2003-01-24
  • 打赏
  • 举报
回复
上面是增加了一列自增字段来达到该目的
流星尔 2003-01-24
  • 打赏
  • 举报
回复
在查询分析器中,alter table tablename add id int identity(1,1)

之所以出现错误,是因为你的表缺乏唯一标志列或者主键。结果更新操作都失去了操作依据。
3m2u 2003-01-23
  • 打赏
  • 举报
回复
按时间格式输入数据肯定应该没有问题
loveup 2003-01-23
  • 打赏
  • 举报
回复
dateTime1不输入任何字符时, dateTime1 为 空值(null), 更新成功。

向dateTime1输入任何字符,然后清空dateTime1的字符, 此时dateTime1=""(长度为零的字符串)为非法的日期格式,所以更新失败。



1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧