olá,
estou precisando de uma ajuda,~estou tendo grandes problemas para criar consultas Runtime(em tempo de execução) do tipo: deixar o usuário criar a estrutura de consulta e após com as especificações, consultaro o banco.
preparar as consultas em tempo de desenvolvimento é fácil, mas tô quebrando a cabeça pra fazer rumtime.
alguem por favor já arrumou uma boa solução para isso ???
abçs Edu.
A forma mais simples de se fazer isso é ir montando sua query e partir dos valores passandos e no final, vc executa ela.
É só criar uma String e ir “adicionando” valores nela. Vc pode usar um StringBuilder para ter mais performance.
Por exemplo…
[code]
String valor1 = onbtém o valor1…
String valor2 = onbtém o valor2…
StringBuilder sb = new StringBuilder();
sb.append( "select from SuaClasse where alguma condição " );
if ( !valor1.trim().equals( “” ) ) // se valor não for vazio
sb.append( " and coluna = ‘" + valor + "’" );
…
objetoQueExecutaConsulta.consultar( sb.toString() );[/code]
É claro que sua query pode ser montada de outras formas melhores, mas essa é a mais básica que pude imaginar.
Até mais!
ohhh meu amigo,
poxa obrigadão pela dica, mas esqueci de especificar q a pesquisar runtime para o db4o que é um banco de dados orientado a objetos e seus modos de consulta a base não envolve SQL por isso q estou quebrando a cabeça pra desenvolver um método de consulta.
as forma de consulta nele são do tipo:
QBE , SODA ou Native Query.
uma maneira q estou pensando em realizar isto é montar um método onde entro com um texto no formato de consulta SQL e nesse método desmembro cada caracter, recupernando os campos, valores e ´simbolos de comparação e depois os remonto jogando dentro de um Native Query do Db4o. só que tbm tô tendo dificuldade de fazer isso.
mas de qualquer forma obrigado pela ajuda.
se vc usar NetBeans podera fazer assim:
[code] String Variavel = "SELECT ALL idrecados, data, hora, contato_via, emissor, telefone_1, telefone_2, receptor, recado, lido, propriedade FROM recados Where ( 1 = 1) ";
String Variavel = "SELECT DISTINCT cultura FROM colheita_temporaria";
try {
getSessionBean1().getRecadosRowSet().setCommand(Variavel);
} catch (SQLException ex) {
ex.printStackTrace();
}
[/code]
Mesmo utilizando DB4.
Ate +
…rsss…
poxa meu amigo a consulta tá legal, porém o banco não é o DB4 se fosse tava tranquilo, mas o negócio é q é o DB4O (Database Object 4) …
qualquer dúvida dá uma olhada nesses sistes q coloquei aí em baixo:
http://www.linhadecodigo.com.br/Artigo.aspx?id=875
http://www.db4o.com/portugues/