Passar dados de um array para o banco de dados

Olá pessoal, estou com um probleminha e gostaria que alguém me ajudasse a resolver…

Eu tenho um array e preciso colocar os dados de cada indice desse array dentro de um banco de dados… oq eu faço?
Estou tentando dessa forma mas esta dando no comando SQL de Insert…

try {
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
con = DriverManager.getConnection(“jdbc:odbc:JAVA_TESTE”, “teste”, “teste”);
}
catch (Exception e) {
System.err.println (“Erro no comando SQL de Conexao”);
}
try {
Statement stmt = con.createStatement();

for (int indice = 0; indice<array.length; indice++){
stmt.execute ("INSERT INTO TESTE_IMPORTACAO (LINHA) VALUES (’ "+ array[indice] + ") ");
}
stmt.close();
}

catch (Exception e){
System.err.println (“Erro no comando SQL de Insert”);
}

Desde já… muito obrigado…

A pergunta q não quer se calar:

Qual erro tá ocorrendo cara???

Ps.: Use java.sql.PreparedStatement

Acontece que não está informando erro… Somente não inicia o loop para inserção de dados dentro do banco…
Ele vai para o catch onde eu coloquei a mensagem (“erro SQL de insert”).

O programa está sendo compilado sem erros!!! porém quando vai rodar não executa a inserção… entendeu?

Então coloca um e.printStackTrace() dentro do catch e vê qual exceção tá ocorrendo.

o erro é esse…
java.sql.SQLException: General error
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6987)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3111)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
at Importa.<init>(Importa.java:78)
at Importa.main(Importa.java:98)

stmt.execute ("INSERT INTO TESTE_IMPORTACAO (LINHA) VALUES (' "+ array[indice] + ") "); 

Vc abriu aspas simples em VALUES (’ e não fechou.

[]´s

Rogério

Rogério… agora deu certo… mas, são 8033 registros e só foram importados 747… logo caiu no catch novamente reportando o mesmo erro.

Qual banco de dados vc está usando !!!

[]´s

ACCESS…
É um sistema que eu quero migrar a importação para java…
mostrar serviço

[quote=Frajuto]ACCESS…
É um sistema que eu quero migrar a importação para java…
mostrar serviço[/quote]

Olha, nao sei se pode ser isso, mas talvez o access não esteja conseguindo gravar na velocidade em que sua aplicação ta escrevendo. Tente dar um sleep de 100 ms entre cada gravação.

como?

for (int indice = 0; indice<array.length; indice++){ stmt.execute ("INSERT INTO TESTE_IMPORTACAO (LINHA) VALUES (' "+ array[indice] + ") "); Thread.sleep(100); }

Muito Obrigado

Funcionou !!!

uma parte sim… estou aparando as pontas aqui e depois eu te falo

O programa rodou… o problema na interrupção dos dados foi devido ao fato de o arquivo txt em alguns registros possuir o caracter especial (’)…
Quando a String SQL é lida, esse caracter passa a fazer parte da String SQL…

Mais um peteco resolvido…
Quero agradecer a vocês pelo tempo e pela ajuda prestada…

até o proximo peteco… um Abraço

First of all:

Procure utilizar PreparedStatement… Ele fica no buffer do seu banco de dados tornando a execucao bem mais rapida. Principalmente qd se quer alterar muitos registros como eh o seu caso…

Outra coisa…

Esta forma de concatenar valores para gerar uma query eh bem sujeita a erros…

Se o valor de sua variavel possuir uma aspas simples(’) ele ira dar erro tb!

Utilizando o PreparedStatement, vc nao teria este problema!