0

我已经使用 MS access 中的内置升迁向导将 access 数据库转换为 SQL express 数据库。但是,当我尝试以编程方式将记录添加到 SQL Server 表时,现在出现错误:

严重错误 #-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 
4

1 回答 1

0

您应该使用 Null 而不是 vbNullString。vbNullString 是一个常量,设计用于将数据传递给 API。Null 是空值的 VB 表示形式。数据库意义上的NULL。

您遇到的一个问题是,在 VB 中,String 不能为 Null。您当然可以使用 VB 的变体数据类型,因此将 Notes 声明为

Notes as Variant

然后要么

wblock.Notes = "some text"

或者

wblock = Null
于 2015-03-31T14:42:58.367 回答