Cachedrowset,JDBC和SQL Server 2008插入图像问题

时间:2011-05-01 05:14:32

标签: java sql-server sql-server-2008 jdbc

我正在尝试通过jdbc type 4(microsoft jdbc 3.0)将图像文件(.png,200KB)插入到Sql服务器(columb type varbinary(max)),这是我的代码:

            crsi.moveToInsertRow();                
            crsi.updateInt(1, Integer.parseInt(txt_TargetID.getText()));
            crsi.updateBinaryStream(2, fis,f.length());
            crsi.updateString(3, txt_Name.getText());
            crsi.updateString(4, btng_Gender.getSelection().getActionCommand());
            crsi.updateString(5, dpk_Birthdate.getSelectedDateAsText());
            crsi.updateString(6, txt_IdenNo.getText());
            crsi.updateString(7, dpk_RecordDate.getSelectedDateAsText());
            crsi.insertRow();
            crsi.moveToCurrentRow();
            crsi.acceptChanges(); 

crsi是cachedrowsetimpl对象,fis是Fileinputstream对象
每次向右,列都会插入,但图像列保持为NULL。 出了什么问题?

1 个答案:

答案 0 :(得分:0)

好的,我已经解决了这个问题。我应该在SQL server中启用FILESTREAM,也必须有一个Filestream组数据库,其中必须有rowguiid和uniqueindentifier列。

此外我无法使用cachedrowset上传文件流,但我必须使用preparestatement上传文件流。(cachedrowset会导致同步冲突)