Db4o : Alguem já conseguiu criar consultas Runtime?
4 respostas
dado_dias
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 ???
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...
Stringvalor1=onbtémovalor1...Stringvalor2=onbtémovalor2...StringBuildersb=newStringBuilder();sb.append("select from SuaClasse where alguma condição ");if(!valor1.trim().equals(""))// se valor não for vaziosb.append(" and coluna = '"+valor+"'");...objetoQueExecutaConsulta.consultar(sb.toString());
É claro que sua query pode ser montada de outras formas melhores, mas essa é a mais básica que pude imaginar.
Até mais!
dado_dias
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.
marciofermino
se vc usar NetBeans podera fazer assim:
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();
}
Mesmo utilizando DB4.
Ate +
dado_dias
…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: