Thank you for your post and the link to your original thread.
I have forwarded the information to our Development and Software Quality Assurance (Testing) departments for review and confirmation. When information becomes available for you, I will let you know.
Our Testing department has confirmed the problem. The workaround is to use ResultSet.getBinaryStream() instead of ResultSet.getBlob().
I'm trying to do the same thing Onno does, but I get a null result for getBlob as well.
I am trying to get a result using
InputStream myContainerStream = myResultSet.getBinaryStream("FileMakerContainerField");
but I get a null result there as well. Same result for the getBytes method.
I have tested with FileMaker Server 188.8.131.527. Seems the most recent version at the time of this post.
This is the only place here that I found where there's an exact question - and an exact answer.
I hope this is not yet again a problem 3 years later and that I get an answer as straight as the previous one. I know Onno, we used to work for Apple. I'll ask him as well how he got around this issue. Maybe it wás fixed but broken again. Thanks.
FYI, I just got a message from Onno that he gave up solving the problem using FileMaker and choose another product for the project where initially FileMaker Server was decided on. So probably even the workaround did not work.
OK, I got it. Not a bug.
You have to know how to retrieve the data. You have to use GetAs() with the correct stream type.
This puts me in a pickle. A generic "SELECT *" retrieves several records with each column an unpredicatable data type. I can put this in a decision tree, and detect a longvarbinary to know I'm retrieving a container field.
But then I have to re-query I guess to first cast that field as a varchar, in order to get the container info, parse out what possible data could be in it, then re-query a 3th time with the correct GetAs(<streamtype>) to be able finally to get a binaryStream.
That seems like a slow and painful way to do it. Does anyone know an easier way?