在 VB6 中的 ADODB.RecordSet 中设置一个静态字段值
Set a static field value in ADODB.RecordSet in VB6
是否可以在 VB6 的 ADODB 记录集中设置静态字段的值?
例如,假设我有一个记录集,其来源是:
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.
有什么方法可以让它工作吗?如果可能,我希望保持活动连接打开。
提前致谢!
前两个字段映射到数据库中的字段。您有一个名为 myTable 的 table,字段映射到 col1 和 col2。然而,第三个值被指定为空字符串。将其视为 SQL 中的 Const。您不能为 const 分配新值:它始终与之前的值相同。
即使你可以这样做:它会映射到哪个字段?数据库不知道你想让它去哪里。它认为您正在尝试插入一个字段并报告它无法为您执行该操作。
我的 VB6 已经生锈了,我不再拥有一个副本,但我想知道你为什么要以这种方式添加记录。最好编写一个 INSERT 存储过程,并像调用任何其他过程一样调用它。
是否可以在 VB6 的 ADODB 记录集中设置静态字段的值?
例如,假设我有一个记录集,其来源是:
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.
有什么方法可以让它工作吗?如果可能,我希望保持活动连接打开。
提前致谢!
前两个字段映射到数据库中的字段。您有一个名为 myTable 的 table,字段映射到 col1 和 col2。然而,第三个值被指定为空字符串。将其视为 SQL 中的 Const。您不能为 const 分配新值:它始终与之前的值相同。
即使你可以这样做:它会映射到哪个字段?数据库不知道你想让它去哪里。它认为您正在尝试插入一个字段并报告它无法为您执行该操作。
我的 VB6 已经生锈了,我不再拥有一个副本,但我想知道你为什么要以这种方式添加记录。最好编写一个 INSERT 存储过程,并像调用任何其他过程一样调用它。