2010-10-30 82 views
1

我想更改表的MULTISET列,我的代碼看起來是這樣的:Informix的JDBC的PreparedStatement UPDATE多集

PreparedStatement pstm = preparedStatement("UPDATE table SET mc = MULTISET{?, ?} WHERE ..."); 
pstm.setString(1, "..."); 
pstm.setString(2, "..."); 
pstm.execute(); 

而且我得到錯誤:「非法企圖集合類型轉變成另一種類型「。

這有什麼問題?當我把真正的價值而不是'?'一切正常。

順便說一句... MC的定義如下MULTISET(CHAR(20)NOT NULL)

謝謝...

回答

2

我測試了使用JDBC驅動程序的Informix 3.50和Jython 2.5。 1,它的工作原理。也許你使用一些舊版本的JDBC?我用​​和executeUpdate()方法測試了它。我的代碼:

from java.sql import DriverManager 
from java.lang import Class 

Class.forName("com.informix.jdbc.IfxDriver") 

db = DriverManager.getConnection(db_url, usr, passwd) 
pstm = db.prepareStatement("UPDATE aaa_mc_test SET mc_test = MULTISET{?, ?}") 
pstm.setString(1, "...") 
pstm.setString(2, "...") 
r = pstm.executeUpdate() 
print('ok, updated: %d' % (r)) 

對於3個記錄我插入aaa_mc_test表它打印出ok, updated: 3

相關問題