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...
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();
}
se alguem nao entende alguma coisa.. me fala ae..
vlw galera...