Preciso terminar um trabalho, só que estou me matando para usar um campo Date de uma tabela e até agora nada.
A questão é a seguinte preciso fazer um SELECT e repassar o resultado deste, para uma página web. Qndo os campos da tabela que são passados pelo SELECT são do tipo INTEGER, CHAR, VARCHAR funciona blz, mas quando é Date, ih, aí dá erro. Uso um Banco Interbase.
A query SQL funciona blz quando executada no banco.
Quanto aos “” não são demais, pois já usei o mesmo código para outros campos do banco que não sejam do tipo “Date” e funciona blz, o problema é quando vou passar um campo do tipo “Date” ele retorna NULL.
Dica de quem já sofreu por causa desses benditos SQLs,
Debugar as paradas na hora que tiveres executando, manda ele imprimir o query na tela antes de executar, eu várias vezes tive o problema de o java quebrar o sql (inserir um \n) do nada e o sql parar de rodar por isso.
Não creio que seja problema de Java, e sim de leitura da query.
Infelizmente não funcionou, fiz o indicado e o resultado foi o seguinte:
Pedi para enviar a query Sql para tela, a query veio certinha e o resultado continua NULL.
Sql: SELECT P.DTEMISSAO FROM PEDIDO P, REPRESENTANTE R, STPEDIDO SP WHERE P.CDREPRESENTANTE = R.CDREPRESENTANTE AND P.CDSTPEDIDO = SP.CDSTPEDIDO AND P.CDPEDIDO = ‘01/00001’ Resultado sql: null
Depois só para testar se a query estava mesmo certa troquei o “SELECT P.DTEMISSAO” para “SELECT P.CDPEDIDO”, e a query passada foi a mesma de antes, e o resultado deixa de ser NULL.
Sql: SELECT P.CDPEDIDO FROM PEDIDO P, REPRESENTANTE R, STPEDIDO SP WHERE P.CDREPRESENTANTE = R.CDREPRESENTANTE AND P.CDSTPEDIDO = SP.CDSTPEDIDO AND P.CDPEDIDO = ‘01/00001’ Resultado sql: 01/00001
Eu acho que meu problema é na hora de passar datas do InterBase para o Java, pode ser o formato de data do Interbase que o Java não aceita ou vice-versa sei lá, só sei que não consigo resolver isso.
Se tiveres mais alguma sugestão, agradeço desde já.
Outra dúvida que acabou de me surgir, o que acontece quando a variável “pedido” tem algum erro ?
É possível que ela esteja sem nenhum valou ou com algum valor estranho para o banco ? Pq isso ocasionaria um “null”, caso não encontrasse nada, certo ?
Isso mesmo. Quando a variável “pedido” tem algum erro qq que seja ele o valor retornado é sempre “null”, o que não é o caso porque quando eu peço para retornar a query Sql para tela junto com o resultado, o lugar reservado a variável “pedido” volta com valor correto, enquanto que o resultado em si volta “null”.
Não sei se o Interbase usa o mesmo padrão de sql que o Oracle, mas neste, basta tu usares o to_char e/ou o to_date. Às vezes tem q fazer uma bruxaria fedida :roll:
Se não souberes como usar esses dois comandos, dá uma procuradinha no google que vais achar rapidinho.