bom dia! estou terminando o sistema desktop de controle de material, o cliente pediu para adicionar alem do tombo, cologar o numero_serial do aparelho! só que em alguns aparelhos velhos não foi cologado o tombamento, sendo assim ele vai gravar o tombamento ou numero_serial como valor null, o problema e que ele não aceita no meu programa gravar mais registros nullos, pois sempre que faço um rs.first no banco ele acha esse registro. Tem como adicionar mais registros nullos sem ele reclame!?
aqui esta meu codigo:
// con_impressoras e o nome da minha conexao.
public void testarCampos() throws Exception {
try {
if (tf_nome.getSelectedItem() == null) {
throw new Exception("O campo nome é Obrigatorio!");
}
if (tf_origem.getSelectedItem() == null) {
throw new Exception("O campo origem é Obrigatorio!");
}
if (tf_destino.getSelectedItem() == null) {
throw new Exception("O campo destino é Obrigatorio!");
}
if (tf_data.getCalendar() == null) {
throw new Exception("O campo destino é Obrigatorio!");
}
if (tf_tombo.getText() == null || (tf_codigo_serial.getText() == null)) {
throw new Exception("Por favor, insira o campo TOMBO ou Nº SERIAL");
}
} catch (Exception e) {
throw new Exception(e);
}
}
private void botao_gravarActionPerformed(java.awt.event.ActionEvent evt) {
try {
boolean ok;
try {
this.testarCampos();
ok = true;
} catch (Exception ex) {
// Logger.getLogger(newcad_impressoras_2.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(null, "Preencha os Campos Obrigatorios, marcados com (*)");
ok = false;
}
// String aux = tf_data.getText();
// System.out.print(aux);
// String dia = aux.substring(0, 1);
// String mes = aux.substring(3, 4);
// String ano = aux.substring(6, 9);
// System.out.print(dia);
// System.out.print(mes);
// System.out.print(ano);
if (ok == true) {
//Transforma o getCalendar em Date
Calendar cal = tf_data.getCalendar();
Date data = cal.getTime();
// formata e exibe a data e hora
Format formato = new SimpleDateFormat("yyyy/MM/dd");
//if(tf_tombo.getText() == null );
// JOptionPane.showMessageDialog(null,"Preencha os Campos Obrigatorios, marcados com (*)");
//executa SQL verificando se existe o tombo
con_impressoras.executeSQL("Select * From cad_estoque Where Tombo = '" + tf_tombo.getText() + "'");
//se existir o tombo emiti uma msg de tombo ja existente
if (con_impressoras.resultset.first()) {
JOptionPane.showMessageDialog(null, "O tombo já existe!");
} else { //senao...executa SQL verificando se existe o codigo serial
con_impressoras.executeSQL("Select * From cad_estoque Where codigo_serial = '" + tf_codigo_serial.getText() + "'");
//se existir o tombo emiti uma msg de serial ja existente
if (con_impressoras.resultset.first()) {
JOptionPane.showMessageDialog(null, "O Codigo_serial ja existe!");
} else {//se nao faz o insert
String sqlinsert = "insert into cad_estoque(nome,data,tombo,origem,destino,situacao,codigo_serial)values('"
+ tf_nome.getSelectedItem() + "',"
+ "'" + formato.format(data) + "'" + ",'"
+ tf_tombo.getText() + "','"
+ tf_origem.getSelectedItem() + "','"
+ tf_destino.getSelectedItem() + "','"
+ tf_situacao.getText() + "','"
+ tf_codigo_serial.getText() + "')";
System.out.println(sqlinsert);
con_impressoras.statement.executeUpdate(sqlinsert);
JOptionPane.showMessageDialog(null, "Gravação realizada com sucesso");
//atualiza o resultset //
// con_impressoras.resultset = con_impressoras.statement.executeQuery("select * from cad_estoque ");
con_impressoras.executeSQL("select * from cad_estoque by" + ordenacao);
con_impressoras.resultset.first();
mostrar_dados();
}
}
}
obrigado pela atenção…