是否可以在VB6中的ADODB Recordset中设置静态字段的值?
例如,假设我有一个记录集,其源代码为:
SELECT col1, col2, '' AS staticCol
FROM myTable
WHERE 1 = 2
然后我通过调用myRS.AddNew
添加新记录。
在新记录中,所有三个字段都为NULL。我可以设置col1和col2没有问题:
myRS.Fields("col1").Value = "one"
myRS.Fields("col2").Value = "two"
但是当我尝试设置staticCol时,我收到错误。
myRS.Fields("staticCol").Value = "three"
-->Run-time error '-2147217887 (80040e21)':
-->Multiple-step operation generated errors. Check each status value.
myRS.Fields("staticCol").Value = ""
-->Run-time error '-2147217887 (80040e21)':
-->Multiple-step operation generated errors. Check each status value.
有没有办法让这项工作?如果可能,我更愿意保持活动连接处于打开状态。
提前致谢!
答案 0 :(得分:1)
前两个字段映射到数据库中的字段。你有一个名为myTable的表,字段映射到col1和col2。但是,第三个值被指定为空字符串。可以将它想象成SQL中的Const。您不能为const分配新值:它始终与之前的值相同。
即使你可以这样做:它会映射到哪个字段?数据库无法知道您希望它去哪里。它认为您正在尝试插入字段并报告它无法为您执行该操作。
我的VB6生锈了,我不再拥有副本了,但我想知道你为什么试图以这种方式添加记录。最好先编写一个INSERT存储过程,然后像调用任何其他过程一样调用它。