Я пытаюсь вставить файл в поле большого двоичного объекта в базе данных Firebird, используя lib jaybird 2.1.6.
Сначала я создаю запись в своей базе данных, затем, с идентификатором записи,Я пытаюсь вставить свой файл в поле большого двоичного объекта (подтип 0).
Вот мой код:
public static boolean insertBlob(File p_file, String p_maxId) {
String requette =
"UPDATE MAIL_RECU a SET a.CONTENU=? where a.ID_MESSAGE_RECU="+ p_maxId;
PreparedStatement ps = null;
FileInputStream input = null;
try {
ps = laConnexion.prepareStatement(requette);
input = new FileInputStream(p_file);
int paramIdx = 1;
ps.setBinaryStream(paramIdx++, input, p_file.length());
ps.executeUpdate();
} catch (SQLException e) {
System.out.println("cause: " + e.getCause());
System.out.println("stacktrace: " + e.getStackTrace());
System.out.println(e);
messageUtilisateur.affMessageException(e,
"Erreur à l'insertion d'un blob");
} catch (FileNotFoundException e) {
messageUtilisateur.affMessageException(e,
"impossible de trouver le fichier");
} finally {
try {
ps.close();
input.close();
} catch (SQLException e) {
messageUtilisateur.affMessageException(e,
"Erreur à l'insertion d'un blob");
} catch (IOException e) {
messageUtilisateur.affMessageException(e, "fichier non trouvé");
}
}
return true;
}
Проблема в том, что у меня исключение, когда
ps.setBinaryStream(paramIdx++, input, p_file.length());
выполнено.
У меня есть сообщение "java.sql.SQLException: еще не реализовано".У меня вопрос, есть ли у кого-нибудь уже эта проблема?Если да, то как он (или она) это исправил?Есть ли другой способ сохранить файл в blob с помощью jaybird?