Richard,
O grande segredo de se fazer atualizações em banco de dados é garantir que o código SQL contido na String que está sendo passado para o banco esteja 100% correta, seria interessante que ao executar o código vc pudesse visualizar o que está sendo executado, ao menos até que as atualizações funcionem.
Uma classe de conexão com o banco Access poderia ser assim (ao menos é essa que eu tenho comigo e funciona, se alguém tiver uma maneira melhor vai servir pra mim tb). Não esqueça do ODBC
import java.awt.;
import javax.swing.;
import java.sql.;
import java.util.;
public class Connector extends Object{
private Connection connection;
public Connector()
{
try {
String url = “jdbc:odbc:DB”; // onde DB é o nome do ODBC.
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
connection = DriverManager.getConnection( url );
}
catch ( ClassNotFoundException cnfex ) {
// process ClassNotFoundExceptions here
cnfex.printStackTrace();
}
catch ( SQLException sqlex ) {
// process SQLExceptions here
sqlex.printStackTrace();
}
catch ( Exception ex ) {
// process remaining Exceptions here
ex.printStackTrace();
}
}
public Connection getConnection()
{
return connection;
}
}
Quando vc faz atualizações no banco access, como por exemplo um INSERT, os campos inseridos devem estar entre apóstrofes (’ ), talvez aí é que esteja o problema um trecho de código para insersão poderia ser assim:
Connection connection;
Connector connect;
JTextArea output; //Com esse cara aqui eu consigo visualizar o código a ser executado pelo banco se vc tiver dúvidas quanto ao código vc pode até copia-lo executar diretamente no banco.
try{
connect = new Connector();
connection = connect.getConnection();
if (!connection.isClosed()) output.append( "Connection successful
" );
}
catch ( SQLException sqlex ) {
// process SQLExceptions here
sqlex.printStackTrace();
output.append( "Connection unsuccessful
" +
sqlex.toString() );
}
///// e para inserir es aí um trecho
try {
Statement statement = connection.createStatement();
String query = "INSERT INTO tabela_qualquer (" +
"firstname, lastname, address, city, " +
"stateorprovince, postalcode, country, " +
"emailaddress, homephone, faxnumber" +
") VALUES ('" +
fields.first.getText() + "', '" +
fields.last.getText() + "', '" +
fields.address.getText() + "', '" +
fields.city.getText() + "', '" +
fields.state.getText() + "', '" +
fields.zip.getText() + "', '" +
fields.country.getText() + "', '" +
fields.email.getText() + "', '" +
fields.home.getText() + "', '" +
fields.fax.getText() + "')";
output.append( "
Sending query: " +
connection.nativeSQL( query )
+ "
" );
int result = statement.executeUpdate( query );
if ( result == 1 )
output.append( "
Insertion successful
" );
else {
output.append( "
Insertion failed
" );
fields.first.setText( “” );
fields.last.setText( “” );
fields.address.setText( “” );
fields.city.setText( “” );
fields.state.setText( “” );
fields.zip.setText( “” );
fields.country.setText( “” );
fields.email.setText( “” );
fields.home.setText( “” );
fields.fax.setText( “” );
}
}
Para atualizar é a mesma coisa, e mais uma vez… É bom antes executar o código diretamente no Banco.
Se ficou faltando alguma coisa é só perguntar, se eu souber e poder ajudar…
//Fábio