How to remove from this mailing list !!!! regards Shiva > Hi Marc, > > I'm not sure if you've had a successful solution worked out by now, but our > web application frequently stores and retrieves images (GIF and JPEG at this > stage) using the 7.1 (RC 4 or 5 I think) code and I haven't encountered a > problem yet. Another application stores all manner of binary files (anything > the user throws at it, PDF/Word/etc) and again, we haven't seen a problem. > > Some notes on the code: > > i) I use the setAutoCommit(false) method of the Connection class for all > large object dealings (select/insert/update) as this seems to be required > (ensures commits don't occur after each statement or whatever). > > ii) I've tended to use setBytes() instead of setBinaryStream() in the > PreparedStatement object. Unsure if this matters, but I usally get passed an > array of bytes from the image uploading code. Streams may be more efficient > but I'm not sure if this is where the bug lies, if indeed it is a bug. > > Also, if you want to try out uploading/downloading the offending image I can > give you an account on our 'WebFormX' product site to see if its works > against Postgres, basically builds online forms and you can upload form > logos/backgrounds as well as image fields. > > Cheers, > Joe > > > -----Original Message----- > > From: The Hermit Hacker [mailto:[EMAIL PROTECTED]] > > Sent: Sunday, 13 May 2001 2:45 AM > > To: [EMAIL PROTECTED] > > Cc: [EMAIL PROTECTED] > > Subject: [JDBC] Displaying/Pulling Images using JDBC ... > > > > > > > > > > Morning folks ... > > > > Been wracking our brains on this one for too long now ... have a > > client that is trying to use JDBC to pull images stored in > > the database, > > and, from what we can gather, the images are coming out > > 'truncated' ... > > > > If the client stores the images as ASCII (uuencoded) and pulls > > those out, all works well, but if he stores them as > > binary/raw images, the > > images don't come out ... > > > > If he retrieves that image using psql and stores it to a file, > > that file is fine, so apparently the backend is storing it > > properly ... > > > > According to the table schema that we have, the image is being > > stored as an 'oid' type ... > > > > In relation to the image settings, they are counting the bytes > > that the stream is going to send to the client and verifying it on the > > clients side, the numbers are not matching unless it is an ascii based > > file.... > > > > Both the backend server and the JDBC drivers are v7.1 ... > > > > Now, my thought on this is that it *sounds* like the JDBC is > > hitting some sort of control character is the stream that > > tells it to stop > > sending the image ... is this possible? Some binary > > character that needs > > to somehow be trapped? > > > > Image content is a mostly a faxed document saved as .tif format. > > But it could be anything and we derive it from the file name. > > We upload > > the document to the database. Please See the source > > > > Sample of the source they are using is as follows, is > > there something > > that we are seeing: > > > > PreparedStatement prepStmt = con.prepareStatement(selectstatement); > > prepStmt.setString(1, medicalRecordId); > > ResultSet rs = prepStmt.executeQuery(); > > if (rs.next()) { > > medicalRecordId = rs.getString(1); > > typeSOAP = rs.getString(2); > > code = rs.getString(3); > > String datetimetemp = rs.getString(4); > > datetime = Timestamp.valueOf(datetimetemp); > > testObject = rs.getString(5); > > testResult = rs.getString(6); > > note = rs.getString(7); > > appointmentId = rs.getString(8); > > patientId = rs.getString(9); > > test = rs.getString(10); > > category = rs.getString(11); > > > > //if(imageName == null){ > > if(imageNametemp != null){ > > imageName = rs.getString(12); > > > > > > BufferedInputStream bis = new > > BufferedInputStream(rs.getBinaryStream(13)); > > System.out.println("value of bis"+bis.toString()); > > //InputStream is = rs.getBinaryStream(13); > > > > //System.out.println("vale of inputstream"+is.toString()); > > > > int TotLen=0; > > > > ByteArrayOutputStream imageOutputStream = new > > ByteArrayOutputStream(8164); > > > > byte[] b = new byte[8164]; > > int len=0; > > > > try { > > while( (len = bis.read(b,0,8164)) != -1 ) { > > imageOutputStream.write(b,0,len); > > > > TotLen += len; > > } > > bis.close(); > > imageAsBytes = imageOutputStream.toByteArray(); > > > > System.out.println("value of baoslenght"+imageAsBytes.length); > > System.out.println("value of totlenght"+TotLen); > > > > System.out.println("vale of > > baos"+imageOutputStream.toString()); > > } > > catch(IOException e) { > > } > > } > > prepStmt.close(); > > > > > > Marc G. Fournier ICQ#7615664 > > IRC Nick: Scrappy > > Systems Administrator @ hub.org > > primary: [EMAIL PROTECTED] secondary: > > scrappy@{freebsd|postgresql}.org > > > > > > ---------------------------(end of > > broadcast)--------------------------- > > TIP 2: you can get off all lists at once with the unregister command > > (send "unregister YourEmailAddressHere" to > > [EMAIL PROTECTED]) > > > > ---------------------------(end of broadcast)--------------------------- > TIP 3: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to [EMAIL PROTECTED] so that your > message can get through to the mailing list cleanly > -- Subhramanya Shiva, Programmer Archean InfoTech pvt.Ltd. Hyderabad, India http://www.archeanit.com ---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly