Como anexar arquivos no Access 2007

7 respostas
C

Bom dia, por gentileza, alguém pode me ajudar a criar um método que anexe arquivos no banco de dados?

7 Respostas

E

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

E

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

C

Concordo plenamente que Access não é banco de dados, mas infelizmente é o que tenho para utilizar… :cry:

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!

E

veja se isso ajuda:
http://www.codeproject.com/KB/database/AccessBlob.aspx
http://www.linhadecodigo.com.br/Artigo.aspx?id=100

até mais

C

Obrigado… vou tentar… e retorno.

C

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();
		}
	}
V

Valeu caitano, tava procurando algum doido que tivesse feito pois vou tentar fazer isto também.

Criado 25 de julho de 2011
Ultima resposta 15 de jul. de 2013
Respostas 7
Participantes 3