Bom dia pessoal, estou tendo problemas ao tentar fazer o upload de três arquivos para que sejam incluídos no banco de dados(ORACLE). Estou utilizando a conexão JDBC. Eu abro somente uma conexão JDBC para aramazenar os três arquivos no banco, e executo a partir do IF(abaixo), o procedimento 3 vezes. O método no qual ele insere no banco definitivamente é o mIncluiArquivos. Já percebi q o problema é q ele não consegue dar o commit pros 3 procedimentos seguidamente, mesmo abrindo e fechando a conexão nas 3 vezes em q vou inserir os arquivos. Alguém saberia me explicar?! Muito Obrigado desde já…
O método que nos interessa é o mIncluiArquivos (nomezinho horrendo, esse m tá fazendo o que aí? :? )
Os arquivos vieram de onde, de um formulário Web?(com 3 campos FILE, correto?)
Nesse código que vc postou, você já salvou os arquivos no filesystem, certo? (acho que sim pq não tem nenhum stream por aí, só strings) …
T
thingol
Ahn, e o que faz essa rotina? aClsArquivos.mIncluiArquivos()
(off-topic: deve ser algum cara viciado em “notação húngara” que inventou esse nome para o seu método “mIncluiArquivos”. É claro que isso é um método, porque é que tem de pôr a letra “m” para indicar que isso é um método? A notação húngara é perfeita para o C onde você pode escrever algo como aClsArquivos.mIncluiArquivos; e o compilador não reclama de você ter esquecido os parênteses, e concordo que é boa para o uso em programação de GUIs, onde é interessante pôr o nome de btnOK para uma variável JButton que representa o botão OK, mas não é a tradição Java.)
EDITADO - Agora estou vendo, a notação húngara infestou o seu programa; na tradição Java nunca se põe “Cls” alguma coisa para indicar que o identificador representa uma classe. É suficiente que a primeira letra seja maiúscula.
gujlecar
Isso aí smota. Os três arquivos vêm de uma página JSP do tipo <input=“file”>. Guardo-os num tipo FileItem (estou usando o pacote org.apache.commons.fileupload.FileItem) - e depois insiro-os no banco com o método mIncluiArquivos. Já tentei colocar akele setAutoCommit(false); mas qnd resolvo dar o commit(); ele dá erro. Se eu não usar o setAutoCommit(false);, ele vai commitando a cada vez q ele chama o método mIncluiArquivos, porém, já na segunda execução desse método, dá erro, e acho q provavelmente deve ser o commit();
Valeu!
smota
Mostra o danado do erro, senão não dá pra adivinhar … mensagem e stacktrace.
Fora isso, se não puder colocar o código do método m^^($%@##% põe pelo menos um pseudo-código.
Você não tá com algum problema na sua rede não? O segundo arquivo que vc está inserindo é muito grande ou coisa assim? (troque a ordem pra testar)
Nunca usei o FileUpload, então uma dúvida: a essa altura do campeonato os arquivos estão gravados no filesystem? Se não estiverem faça um teste rápido, grave-os no disco e veja se foram salvos corretamente.
vamos lá
gujlecar
Desculpe, mas vou dar uma procurada e ver como faço para gravá-los no disco, pois sou iniciante e não tenho essa noção ainda… Se for simples e tiver como me passar, fico grato.