我已使用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
答案 0 :(得分:0)
你应该使用Null而不是vbNullString。 vbNullString是一个常量,设计用于将数据传递给API。 Null是空值的VB表示。数据库意义上的NULL。
您遇到的一个问题是,在VB中,String不能为Null。您当然可以使用VB的变体数据类型,因此将Notes声明为
Notes as Variant
然后
wblock.Notes = "some text"
或
wblock = Null