集算器中执行 insert 语句报错 JDBC error mssge=[Lost IN/OUT parameter:1]
sql1=“insert into … (id,name) values(1,‘marry’)”
该语句单独拿到数据库执行没问题,但是集算器中
1.>A1.execute(sql1) 报错:JDBC error mssge=[Lost IN/OUT parameter:1],不明白这是什么意思?
2.demo.update@i(A1,STUDENTS1, ID, NAME) 这个可以执行成功,但是数据库中实际没有 insert 成功
目前看,问题的原因可能是 JDBC 的支持问题,JDBC 的执行结果和数据库中的并不一定能统一。问题里使用的 sql 语句并不包含参数,可以试试在执行语句时添加 @s 选项,这个选项可以用来执行确定不包含参数的 sql 语句,即 db.execute@s(sql),或者 db.query@s(sql)
update@i 在执行的时候,只会执行 insert 操作,即主键不重复的才会被执行,但是这里比较主键的操作,需要原始数据才能比较,也就是类似 demo.update@i(A1:A2,students1,id,name) 这样,其中 A1 是修改后的数据,A2 是修改前从数据库获取的原始数据