galera, to tentando faze uma coisa simples… uma consulta ao banco…
to usando o netbeans 6.5 com Access 2007…
a kestão é a seguinte… se eu passo a string como query=“SELECT * FROM Cliente WHERE cdCliente = 10” , por exemplo, ele axa normal… blzinha…
so q eu kero q a filtragem seja feita qdo for apertada uma tecla… se eu passo o codigo direto, da forma q eu disse, ele axa…
agora se eu dexo query="SELECT * FROM Cliente WHERE cdCliente = "+codigo; dá erro de sintaxe no banco… na maioria das vezes diz q é na clausula WHERE…to puto da vida, pq nao consigo enxerga o erro nisso…
nunca tive problema como esse num outro programinha q eu fiz… sempre passei o codigo como parametro e nao deu erro… mas era otro netbeans e otro banco, o my sql… agora é o access…
um amigo meu ta usando o sql server e deu certo esse codigo… funfa certinho… eu praticamente to usando o mesmo codigo, mudando apenas as variaveis e o nome dos metodos…
eu q vi funciona, mas apenas qdo eu coloco o valor do codigo dentro da string pra armazena na query… de qq outro jeito, da erro… ja colokei espaço antes do =, depois, aspas simples pra ca e pra la… apesar de ser intero, como nao ta dando certo, tentei isso tb…
mas enfim, nada deu certo…
to começando a axa q é o proprio access q nao aceita…
=/
se alguem tive alguma ideia do q ta acontecendo… me fala… abaixo ta o codigo…
[code]public void filtrarCliente(){
//esse metodo pega os valores digitados num dos campos… se codigo for vazio, ele pega o nome…mas o código é oq importa agora
String tabCodigo= text_tabCodigo.getText();
String tabNome=text_tabNome.getText();
// String tabApelido=text_tabApelido.getText().toUpperCase();
String query="SELECT * FROM Cliente WHERE ";
if(!tabCodigo.equals(""))
{
query+="cdCliente = "+tabCodigo;
}
else{
if(!tabNome.equals(""))
{
query+=" Nome LIKE = '"+tabNome+"'";
}
}
//alguem ve algum erro de sintaxe??
filtragem(query);
}
public void filtragem(String query){
//aki é so a consulta normal ao banco… aki é sem problemas…
try{
conn.Conecta();
int qtd=tabelaPadrao.getColumnCount();
while(qtd!=0){
tabelaPadrao.removeRow(0);
qtd=tabelaPadrao.getRowCount();
}
res=conn.Consulta(query);
while(res.next()){
int cod=res.getInt("cdCliente");
String tabStatus=res.getString("Status");
String tabNome=res.getString("Nome");
String tabApelido=res.getString("Apelido");
String tabRua=res.getString("Rua");
String tabNumero=res.getString("Numero");
String tabCep=res.getString("Cep");
String tabBairro=res.getString("Bairro");
String tabCidade=res.getString("Cidade");
String tabEstado=res.getString("Estado");
String tabTelefone=res.getString("Telefone");
String tabCelular=res.getString("Celular");
String tabCpf=res.getString("CPF");
String tabCnpj=res.getString("CNPJ");
String tabDtNascimento=res.getString("Data de Nascimento");
String tabDtCadastro=res.getString("Data de Cadastro");
String tabTipoPessoa=res.getString("Tipo Pessoa");
String tabCodigo=""+cod;
String linha[]={tabCodigo,tabStatus,tabNome,tabApelido,tabRua+
" "+tabNumero,tabCep,tabBairro,tabCidade,
tabEstado,tabTelefone,tabCelular,tabTipoPessoa,
tabCpf,tabCnpj,tabDtNascimento,tabDtCadastro
};
tabelaPadrao.addRow(linha);
}
conn.Fecha();
}catch (SQLException ex) {
Logger.getLogger(TabelaCliente.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(this,"Erro Comando SQL "+ex.getMessage());
}
}
//aki eu xamo o metodo de filtragem sempre q alguma tecla é digitada…mas aki tb nao tem problema aparentemente…
private void text_tabCodigoKeyTyped(java.awt.event.KeyEvent evt) {
filtrarCliente();
}
[/code]
se alguem nao entende alguma coisa… me fala ae…
vlw galera…