After looking at the code of the DatabaseImpl from iOS it seems like BLOB won't work on iOS as arguments are all converted to String before beeing passed to the native interface. Indeed the code of the execute() function in this class is:
@Override
public void execute(String sql, Object... params) throws IOException{
// temporary workaround, this will probably fail with blobs
String[] val = new String[params.length];
for(int iter = 0 ; iter < val.length ; iter++) {
if(params[iter] == null) {
val[iter] = null;
} else {
val[iter] = "" + params[iter];
}
}
execute(sql, val);
}
So it seems like it is still using a "temporary" workaround that is incompatible with byte[] arguments for BLOB data. Kind of sucks that this workaround as not been fixed by the time...