严重错误#-2147217887多步OLE DB操作生成错误

时间:2015-03-31 02:14:14

标签: vb6 upsizing

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

严重错误#-2147217887多步OLE DB操作生成错误。

此失败的字段是我设置SQL字段[notes]的时间。我试图将它设置为vbnullstring(使用VB6)。

访问升迁向导将字段创建为nvarchar(255)并将所有空值设置为true,它最初是一个文本字段,其长度为255 in ms access。

将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 

1 个答案:

答案 0 :(得分:0)

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

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

Notes as Variant

然后

wblock.Notes = "some text"

wblock = Null