在VB6中的ADODB.RecordSet中设置静态字段值

时间:2016-01-15 02:29:00

标签: sql vb6 adodb recordset

是否可以在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.

有没有办法让这项工作?如果可能,我更愿意保持活动连接处于打开状态。

提前致谢!

1 个答案:

答案 0 :(得分:1)

前两个字段映射到数据库中的字段。你有一个名为myTable的表,字段映射到col1和col2。但是,第三个值被指定为空字符串。可以将它想象成SQL中的Const。您不能为const分配新值:它始终与之前的值相同。

即使你可以这样做:它会映射到哪个字段?数据库无法知道您希望它去哪里。它认为您正在尝试插入字段并报告它无法为您执行该操作。

我的VB6生锈了,我不再拥有副本了,但我想知道你为什么试图以这种方式添加记录。最好先编写一个INSERT存储过程,然后像调用任何其他过程一样调用它。