严重错误#-2147217887多步OLE DB操作生成错误
我已经使用MS访问中的内置升迁向导将访问数据库转换为SQL Express数据库。但是,当我尝试以编程方式向SQL服务器表中添加记录时,现在出现错误:严重错误#-2147217887多步OLE DB操作生成错误
严重错误#-2147217887多步OLE DB操作生成错误。
这个失败的字段是当我设置SQL字段时[注意]。我试图将其设置为vbnullstring(使用VB6)。
访问升迁向导将该字段创建为nvarchar(255)并将所有空值设置为true,它最初是一个长度为255(毫秒)访问的文本字段。
将sql中的nvarchar字段设置为vbnullstring有问题吗?
任何可能出错的建议将不胜感激!
Set RS = OpenRecordsetSQL("SELECT TOP 1 * FROM AvailabilityBlocks WHERE BlockID=-1")
' ' Add a specific entry to the Availability DB Table '
RS.AddNew
RS("Begin") = wblock.BeginTime
RS("Type") = wblock.BlockType
RS("OCampus") = wblock.Campus
RS("End") = wblock.EndTime
RS("LocationID") = wblock.LocationID
RS("ResourceID") = wblock.ResourceID
RS("RecurringSetNumber") = wblock.RWWSetNumber
RS("Notes") = wblock.Notes
RS("InternalNotes") = wblock.InternalNotes
RS.Update
您应该使用Null而不是vbNullString。 vbNullString是一个设计用于将数据传递给API的常量。空值是空值的VB表示。数据库意义上为NULL。
您遇到的一个问题是,在VB中,字符串不能为空。当然你也可以使用VB的变型数据类型,以便声明Notes作为
Notes as Variant
然后要么
wblock.Notes = "some text"
或
wblock = Null
哇,那么你是说我需要在使用vbnullstring的代码中随处追查,并且如果有可能将以前的vbnullstring写出到SQL服务器数据库中,将其更改为“”(空字符串)? – user1801904 2015-03-31 14:57:43
如果将它保存到字段,可以使用vbNullString小心。 – Rob 2015-03-31 15:13:47
告诉我们你的代码 – Rob 2015-03-31 09:28:36
集RS = OpenRecordsetSQL(“SELECT TOP 1 * FROM AvailabilityBlocks WHERE BlockID = -1“)' '将特定条目添加到可用性数据表表 ' RS.AddNew(“开始”)= wblock.BeginTime RS(“LocationID”)= )= wblock.LocationID RS( “资源ID”)= wblock.ResourceID RS( “RecurringSetNumber”)= wblock.RWWSetNumber RS( “注释”)= wblock.Notes RS( “InternalNotes”)= wblock.InternalNotes RS.Update – user1801904 2015-03-31 13:59:15
我在帖子中添加了这个 - 不可能作为评论阅读。将“注释”设置为空而不设置它? – Rob 2015-03-31 14:02:57