在SQLiteStudio中使用Tcl脚本填充SQLite表

时间:2016-01-30 17:16:07

标签: sqlite tcl sqlitestudio

我正在尝试使用SQLiteStudio的Tcl脚本功能填充SQLite Studio中表的两个INTEGER字段。表本身是m✕n矩形矩阵的表示,其中这两个字段表示元素的索引。

CREATE TABLE matrix ( i INTEGER NOT NULL, j INTEGER NOT NULL, e REAL );

我尝试使用以下脚本为第一个字段重新创建代理 for loop

set i 0; #Initialization code
set i [expr {$i==100?1:$i+1}]; #Per step code

和第二个脚本:

set j 0; #Initialization code
set j [expr {$i==100?$j+1:$j}]; #Per step code

第一个脚本正常填充字段i,第二个脚本显示Error while executing populating code: can't read "i": no such variable错误消息,j字段填充null个值。

有没有办法以这种方式使用SQLiteStudio的填充机制(即从另一个字段的人口Tcl脚本的范围访问字段的新值)?

REMARK

最终解决方案如下所示:

#1st script initialization code
set n_i 10
set i 0
#1st script per step code
set i [expr {$i%$n_i==0?1:$i+1}]
#2nd script initialization code
set n_i 10
set i 0
set j 1
#2nd script per step code
set i [expr {$i%$n_i==0?1:$i+1}]
set j [expr {$i%$n_i==0?$j+1:$j}]

看来,人口Tcl脚本实际上并不关心变量命名,只是采用最后一个设置变量的值来填充给定行的字段。

1 个答案:

答案 0 :(得分:1)

你不能在两个脚本之间共享变量来填充两个不同的列(虽然它是一个很好的想法),但是在你的情况下你可以通过从第一列(i)复制脚本来完成并将其粘贴到j的当前代码之前。当然,你将两次计算i,但它应该完成工作。