Mais erros com sql, Java, Hsqldb etc

7 respostas
C

Tentando de outra forma inserir dados na minha tabela.
Eis o método:

public void inserirRegistro() {

String titulo = "Inserindo novo registro...";
   String id = JOptionPane.showInputDialog(null, "Digite ID do cliente:", titulo, 3);
   String nome = JOptionPane.showInputDialog(null, "Digite o nome do cliente", titulo, 3);
   String telefone = JOptionPane.showInputDialog(null, "Digite o telefone do cliente", titulo, 3);

 try {
   sentenca = conexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
   resultadoConsulta = sentenca.executeQuery("SELECT id_cliente, nome_cliente, telefone_cliente FROM CLIENTES");
   resultadoConsulta.moveToInsertRow();
   resultadoConsulta.updateInt("id_cliente", id);
   resultadoConsulta.updateString("nome_cliente", nome);
   resultadoConsulta.updateString("telefone_cliente", telefone);
   resultadoConsulta.insertRow();
 
}
 catch(SQLException s) { s.printStackTrace(); }

}

Acontece algo estranho. Na linha updateInt() aparece a mensagem de erro:
Cannot find simbol
method : updateInt() …
interface : java.sql.Result

E se eu apago a linha updateInt() e executo o programa só para testar, outro erro, talvez pior ainda ocorre:

java.sql.SQLException: This function is not supported
at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
at org.hsqldb.jdbc.Util.notSupported(Unknown Source)
at org.hsqldb.jdbc.jdbcResultSet.moveToInsertRow(Unknown Source)

O que está ocorrendo? Preciso corrigir essas falhas urgentes, tenho um trabalho a fazer sobre HSQLDB!
Obrigado!

7 Respostas

zirocool

O que tá errado?!
Po meu…
Nunca mexeu em sql pelo jeito né??

Tu tá dando um SELECT, tu quer inserir dados num banco de dados pela saída.
Seria a mesma coisa que tu querer colocar gasolina no cano de escape de um carro.

faz isso aki

public void save(Contato contato) {
		try {
			
			String sql = "INSERT INTO contato SET " +
					"id_usuario = ?, " +
					"nome = ?, " +
					"sobrenome = ?, " +
					"apelido = ?, " +
					"email = ?, " +
					"tel_residencial = ?, " +
					"tel_trabalho = ?, " +
					"celular = ?, " +
					"endereco = ?, " +
					"bairro = ?, " +
					"cidade = ?, " +
					"cep = ?, " +
					"foto = ?";
			
			DataBase db = new DataBase();
			Connection conn = db.open();
			PreparedStatement pstm = conn.prepareStatement( sql );
			
			pstm.setInt( 1, contato.getId_usuario() );
			pstm.setString( 2, contato.getNome() );
			pstm.setString( 3, contato.getSobrenome() );
			pstm.setString( 4, contato.getApelido() );
			pstm.setString( 5, contato.getEmail() );
			pstm.setString( 6, contato.getTel_residencial() );
			pstm.setString( 7, contato.getTel_trabalho() );
			pstm.setString( 8, contato.getCelular() );
			pstm.setString( 9, contato.getEndereco() );
			pstm.setString( 10, contato.getBairro() );
			pstm.setString( 11, contato.getCidade() );
			pstm.setString( 12, contato.getCep() );
			pstm.setString( 13, contato.getFoto() );
			
			pstm.execute();
			
			pstm.close();
			conn.close();
			db.close();
			
			
		} catch( SQLException ex ) {
			System.err.println( "Erro ao persistir contato na base de dados!" );
			ex.printStackTrace();
		}

	}

Onde tiver

pstm.setString(1, contato.getId_contato() );
Insira o teu objeto string q tu vai inserir no banco…

Leia esses tutoriais no link abaixo, ler um pouco aumenta o teu conhecimento e nao faz mal algum! :lol:
http://www.guj.com.br/artigos.jsp#[telefone removido]

C

É possível fornecer ajuda nesse fórum sem fazer comentários idiotas?
Comentários do tipo, pô meu tu não sabe isso, não leu aquilo, não manja daquilo…
Se for para colocar comentários desse tipo, por favor, não poste nada, mesmo que saiba como ajudar…

zirocool

coffee break mao:
É possível fornecer ajuda nesse fórum sem fazer comentários idiotas?
Comentários do tipo, pô meu tu não sabe isso, não leu aquilo, não manja daquilo…
Se for para colocar comentários desse tipo, por favor, não poste nada, mesmo que saiba como ajudar…

Bom cara, mas é que é meio óbvio que ia dar erro tu tentar inserir em alguma coisa que gere saída…

Lê um artigo sobre SQL, sobre JDBC…
Tem vários aí na internet.
Se tu tivesse lido alguma coisa antes, teria sido mto mais fácil…

Desculpa se minha resposta foi idiota, mas é que tua dúvida foi idiota demais…

A propósito, já parou e leu os tutoriais no link que eu passei?!

C

E daí se a pergunta é “FÁCIL”, “IDIOTA”. Você não é obrigado a responder, nem ajudar, sabidão. Então não responda e fica na tua.

É cada imbecil que aparece…
Por favor, não escreva mais.

eliasn

Olha amigo, não é a primeira vez que você faz um comentário infeliz…
Se você não sabe fazer diga: “eu não sei issso…” ou “eu estou começanco a aprender…”
Ninguem vai te questinar quanto a seu conhecimento, aliás todos nós estamos aqui pra aprender, seja uma pergunta básica ou não.
Dando a mesma dica que nosso amigo zirocool te disse: leia tutoriais, a maioria deles você acha aqui e procure no Google, ele também sabe responder as tuas perguntas.
Vai chegar a um ponto que ninguem vai responder suas mensagens pela sua arrogancia. Seja mais humilde.

pcalcado

Vamos acalmar os ânimos aí. Se a dúvida é idiota, não responda ou se for rpa responder tenha paciência e indique EDUCADAMENTE o caminho,seja dando a resposta (pior) ou ensinando a pesquisar (melhor).

Se as gracinhas continuarem vou trancar o tópico, para briguinhas tem mensagens privadas.

benflodin

de acordo com as respostas então essa constante e metodos estão definidos a toa na interface ResultSet ?

ResultSet.CONCUR_UPDATABLE resultadoConsulta.moveToInsertRow(); resultadoConsulta.insertRow();

outro detalhe é que na assinatura do metodo “updateInt” não existe uma implementação (String, String) e sim (String, int) / (int,int)

Benflodin :x

Criado 4 de junho de 2006
Ultima resposta 4 de jun. de 2006
Respostas 7
Participantes 5