Bom dia, por gentileza, alguém pode me ajudar a criar um método que anexe arquivos no banco de dados?
Como anexar arquivos no Access 2007
7 Respostas
Olá!
Access não é banco de dados, hauihauhauihai!
Bincadeiras à parte…
Usa outro banco (MySQL, PostgreSQL, Oracle…), porque o Access “estoura” depois de um certo tamanho.
Espero ter ajudado
Dá uma pesquisada em campo BLOB.
Não sei se o Access usa esse tipo de campo, mas sei que os outros bancos usam.
Até mais
Concordo plenamente que Access não é banco de dados, mas infelizmente é o que tenho para utilizar… 
O Access tem o tipo de campo BLOB (anexo), pesquisei se consiga achar algum exemplo, porem não obtive sucesso… Achei esta implementação utilizando Oracle… Mas não consegui implementar para Access…
Muito Obrigado! Vou continuar tentado!
veja se isso ajuda:
http://www.codeproject.com/KB/database/AccessBlob.aspx
http://www.linhadecodigo.com.br/Artigo.aspx?id=100
até mais
Obrigado… vou tentar… e retorno.
Bom dia, muito obrigado amigo!
Consegui implementar a gravação e leitura de arquivos no Access… Deixarei o código para caso apareça outro louco tentando fazer isso no Access.
O tipo da coluna file é “Objeto OLE”.
public void fileToBase(String path, String filename, String extension) {
JDBC jdbc = new JDBC();
jdbc.conectar();
String sql = "insert into tab (path, filename, extension, file) values (?,?,?,?)";
try {
PreparedStatement stmt = jdbc.conexao.prepareStatement(sql);
try {
File file = new File(path + filename + extension);
FileInputStream fis = new FileInputStream(file);
stmt.setString(1, path);
stmt.setString(2, filename);
stmt.setString(3, extension);
stmt.setBinaryStream(4, fis, (int) file.length());
stmt.execute();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
jdbc.desconectar();
}
}
public void readingTheBaseFile(Integer code) {
JDBC jdbc = new JDBC();
jdbc.conectar();
String sql = "select * from tab where code = ?";
try {
PreparedStatement stmt = jdbc.conexao.prepareStatement(sql);
stmt.setInt(1, code);
ResultSet resultSet = stmt.executeQuery();
while (resultSet.next()) {
try {
String path = resultSet.getString("path");
String filename = resultSet.getString("filename");
String extension = resultSet.getString("extension");
File file = new File(path + filename + extension);
FileOutputStream fos = new FileOutputStream(file);
byte[] buffer = new byte[1];
java.io.InputStream is = resultSet.getBinaryStream("file");
try {
while (is.read(buffer) > 0) {
fos.write(buffer);
}
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
Valeu caitano, tava procurando algum doido que tivesse feito pois vou tentar fazer isto também.