You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spotfire IronPython修改数据表标记行值报错求助

Spotfire IronPython 写入标记行数据报错解决

问题根源

你使用的DataValueCursor是只读游标,它的CurrentValue属性仅用于读取数据,不支持赋值修改。要向数据表写入数据,必须使用Spotfire专门提供的可更新游标DataColumnUpdateCursor。

修正后的代码

from Spotfire.Dxp.Data import *

dataTable = Document.Data.Tables["myTable"]
# 创建可更新的游标,而非只读的DataValueCursor
updateCursor = DataColumnUpdateCursor.CreateFormatted(dataTable.Columns["myColumn"])
markings = Document.ActiveMarkingSelectionReference.GetSelection(dataTable)
some_string = "some_string"

# 开启数据表更新事务,Spotfire要求批量修改必须在事务中执行
with dataTable.BeginUpdate() as updater:
    # 遍历标记行,通过更新游标写入数据
    for row in dataTable.GetRows(markings.AsIndexSet(), updateCursor):
        updater.SetValue(updateCursor, some_string)

关键说明

  • 替换DataValueCursor为DataColumnUpdateCursor:这是支持写入操作的游标类型
  • 必须用BeginUpdate()创建更新事务:Spotfire为了保证数据一致性,要求所有批量数据修改都在事务上下文内完成
  • 调用updater.SetValue()完成写入:仅操作游标无法完成数据提交,需要通过更新器方法将值同步到数据表中

内容的提问来源于stack exchange,提问作者dogfrog

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 14:23:15