Sql

Oi…
Tenho dois sqls um para pesquisar pelo número do pedido e outro para pesquisar pelo intervalo entre a data inicial e a data final…
só que quando eu chamo a consulta ela não retorna nada…

PreparedStatement pstmt = conn.prepareStatement(“SELECT p.idt, p.numero, endereco,nm_rz_social,c.cpf_cnpj, dt_pedido, hr_pedido FROM pedidos p, clientes c WHERE (p.cpf_cnpj = c.cpf_cnpj) AND (p.numero = '”+vr_numero+"’)");

PreparedStatement pstmt2 = conn.prepareStatement(“SELECT p.idt, p.numero, endereco,nm_rz_social,c.cpf_cnpj, dt_pedido, hr_pedido FROM pedidos p, clientes c WHERE (p.cpf_cnpj = c.cpf_cnpj) AND (p.numero BETWEEN '”+data+"’ AND ‘"+datafinal+"’)");

if(vr_numero =="") {
[color=“red”]ResultSet rst_consulta_data = pstmt2.executeQuery();
rst_consulta_data.next();
String cod;
cod = rst_consulta_data.getString(“p.numero”);[/color]
}

else {
ResultSet rst_consulta_pedido = pstmt.executeQuery();
while (rst_consulta_pedido.next()) {
String cod;

  cod = rst_consulta_pedido.getString("p.numero");

e aí… blz ?

há 2 possibilidades:

  1. teu banco nao tem dados
  2. tua consulta não tá fazendo o que vc queria que fizesse

antes de implementar tua consulta roda ela num Query Analizer pra ver o resultado…

Falow

Tenta colocar um sinal de porcentagem entre as aspas deste jeito (’%"+vr_numero+"%’) e usa o try e catch para os dois jeitos:

try
{
    PreparedStatement pstmt = conn.prepareStatement("SELECT p.idt, p.numero, endereco,nm_rz_social,c.cpf_cnpj, dt_pedido, hr_pedido FROM pedidos p, clientes c WHERE (p.cpf_cnpj = c.cpf_cnpj) AND (p.numero = '%"+vr_numero+"%')"); 
}
catch(Exception e)
{
   System.err.println(e);
}
  1. PAZ

o que a % faz ?