Fórum Sql error code =-804 Data type Unknown - Me ajudem !! #154493

12/04/2003

0

tenho o seguinte SQL em um IBQuery com as variaveis :vcp00 e :vcp01

[color=blue:8b503d0765]select moeda as MOEDA, cast(dt as date) as DATA_DE_COMPRA, cliente as CLIENTE, lancto as LANCAMENTO,
cv as T_MOVIMENTO, qtde as DOLLAR, reais as TOTAL_REAIS from negocios
where dt >= cast([/color:8b503d0765][color=red:8b503d0765]:vcp00[/color:8b503d0765] [color=blue:8b503d0765]as date) and dt <= cast([/color:8b503d0765][color=red:8b503d0765]:vcp01[/color:8b503d0765] [color=blue:8b503d0765]as date)
order by dt [/color:8b503d0765]

Declarei como parametro = Params [color=blue:8b503d0765]vcp00[/color:8b503d0765] e [color=blue:8b503d0765]vcp01[/color:8b503d0765] com a propiedade Data type = ftString.

e um botão com o seguinte procedimento ao clicar

[color=blue:8b503d0765] DMIB.IBQueryFree.ParamByName(´vcp00´).Value := datai;
DMIB.IBQueryFree.ParamByName(´vcp01´).Value := dataf;
DMIB.IBQueryFree.Open;
DMIB.IBQueryFree.Active := True ;
Application.CreateForm(TQRNegocios, QRNegocios);{Carrega form na memória}
QRNegocios.QRDBText1.DataField := ´LANCAMENTO´;
QRNegocios.Preview;
QRNegocios.Free;[/color:8b503d0765]

O problema e que o IBQuery esta identificando as minhas variaveis de parametro como tipo de data não reconhecida. Por acaso tenho que declara as variaveis no SQL , pois pensei que os parametros ja ficavam como variaveis e era só incluir no SQL e se e isto como faço para declarar ?

Sou novato nisto!


Kanedasam

Kanedasam

Responder

Posts

12/04/2003

Aroldo Zanela

tenho o seguinte SQL em um IBQuery com as variaveis :vcp00 e :vcp01 [color=blue:569245eea4]select moeda as MOEDA, cast(dt as date) as DATA_DE_COMPRA, cliente as CLIENTE, lancto as LANCAMENTO, cv as T_MOVIMENTO, qtde as DOLLAR, reais as TOTAL_REAIS from negocios where dt >= cast([/color:569245eea4][color=red:569245eea4]:vcp00[/color:569245eea4] [color=blue:569245eea4]as date) and dt <= cast([/color:569245eea4][color=red:569245eea4]:vcp01[/color:569245eea4] [color=blue:569245eea4]as date) order by dt [/color:569245eea4] Declarei como parametro = Params [color=blue:569245eea4]vcp00[/color:569245eea4] e [color=blue:569245eea4]vcp01[/color:569245eea4] com a propiedade Data type = ftString. e um botão com o seguinte procedimento ao clicar [color=blue:569245eea4] DMIB.IBQueryFree.ParamByName(´vcp00´).Value := datai; DMIB.IBQueryFree.ParamByName(´vcp01´).Value := dataf; DMIB.IBQueryFree.Open; DMIB.IBQueryFree.Active := True ; Application.CreateForm(TQRNegocios, QRNegocios);{Carrega form na memória} QRNegocios.QRDBText1.DataField := ´LANCAMENTO´; QRNegocios.Preview; QRNegocios.Free;[/color:569245eea4] O problema e que o IBQuery esta identificando as minhas variaveis de parametro como tipo de data não reconhecida. Por acaso tenho que declara as variaveis no SQL , pois pensei que os parametros ja ficavam como variaveis e era só incluir no SQL e se e isto como faço para declarar ? Sou novato nisto!

Kanedasam,

Este método DMIB.IBQueryFree.Open é equivalente a isto DMIB.IBQueryFree.Active := True, ou seja, basta um. (tanto faz).

A mensagem deve ser tipos de dados (data type em inglês) incompatíveis. Não vejo necessidade de fazer Cast nas variáveis de parâmetro (remova), a não ser que sejam strings no banco.
Altere:
DMIB.IBQueryFree.ParamByName(´vcp01´).Value := dataf;
Para:
DMIB.IBQueryFree.ParamByName(´vcp01´).AsDate := dataf;

Defina os parametros datai e dataf como Input e DataType = date.

Faça o teste e me avise se não funcionar, não sei se esqueci de alguma coisa.


Responder

Gostei + 0

12/04/2003

Kanedasam

Agradeço o interesse de me ajudar,

o uso do cast e que as datas são string e fiz o seguinte :

DMIB.IBQueryFree.ParamByName(´vcp01´).AsString := dataf;
e datai e dataf como Input e DataType = String. Dentro do que você me orientou mas deu a mesma mensagem ´´Sql error code =-804 Data type Unknown´.

Porém quando troco o :vcp00 e vcp01 pelas string de data respequitiva ´04/12/2001´ e ´04/21/2001´, pode ser outras datas, funciona.
o vcp00 e vcp01 recebem a data com aspas para o sql ler como uma string a ser convertida para data mas o IBQuery esta identificando as variaveis como campo a ser convertido inves do conteudo das variaveis.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar