Insert data into a smart large object
The following code inserts data into a smart large object:
String s = "insert into large_tab (col1, col2) values (?,?)"; pstmt = myConn.prepareStatement(s); file = new File("data.dat"); FileInputStream fin = new FileInputStream(file); byte[] buffer = new byte[200];; IfxLobDescriptor loDesc = new IfxLobDescriptor(myConn); IfxLocator loPtr = new IfxLocator(); IfxSmartBlob smb = new IfxSmartBlob(myConn); // Create a smart large object in server int loFd = smb.IfxLoCreate(loDesc, smb.LO_RDWR, loPtr); System.out.println("A smart-blob has been created "); int n = fin.read(buffer); if (n > 0) n = smb.IfxLoWrite(loFd, buffer); smb.IfxLoClose(loFd); System.out.println("Wrote: " + n +" bytes into it"); System.out.println("Smart-blob is closed " ); Blob blb = new IfxBblob(loPtr); pstmt.setInt(1, 2); // set the Integer column pstmt.setBlob(2, blb); // set the blob column pstmt.executeUpdate(); System.out.println("Binding of smart large object to table is done"); pstmt.close(); smb.IfxLoRelease(loPtr); System.out.println("Smart Blob Locator is released ");
The contents of the file data.dat are written to the BLOB column of the large_tab table.