Datas como parametro no Firebird
29/11/2005
0
Pesquisei diversos tópicos aqui no forum com diversas dicas, mas ainda não resolveu o problema
Estou usando Firebird + Delphi 7 + ClientDataSet, nas configurações regionais do Windows uso dd/mm/aaaa. Nos campos da tela de seleção dos parametros para o relatório uso MaskEdit para datas.
M_Sql := ´SELECT * FROM PEDIDOS A ´;
M_sQL := M_Sql + ´WHERE PED_COD = :PEDIDO ´;
M_Sql := M_Sql + ´AND A.PED_COD BETWEEN :DTI AND DTF ´;
DM.SQLDTSETPEDIDOS.PARAMBYNAME(´DTI´).ASDATE := STRTODATE(EDIT1.TEXT)
DM.SQLDTSETPEDIDOS.PARAMBYNAME(´DTF´).ASDATE := STRTODATE(EDIT2.TEXT)
É apresentada a seguinte mensagem de erro:
SQLDTSETPEDIDOS: Parameters ´DTI´ not found.
Alguém poderia me dar um dica consistente.
Abraços a todos e Obrigado
Neto
Neto
Posts
29/11/2005
Jairroberto
Se você não se enganou ao copiar o código para cá, está faltando atribuir o comando SQL que você montou na variável M_Sql para a propriedade ´CommandText´ do DataSet:
M_Sql := ´SELECT * FROM PEDIDOS A ´;
M_Sql := M_Sql + ´WHERE A.PED_COD = :PEDIDO ´;
M_Sql := M_Sql + ´AND A.PED_COD BETWEEN :DTI AND :DTF ´;
DM.SQLDTSETPEDIDOS.CommandText := M_Sql;
DM.SQLDTSETPEDIDOS.PARAMBYNAME(´DTI´).ASDATE := STRTODATE(EDIT1.TEXT)
DM.SQLDTSETPEDIDOS.PARAMBYNAME(´DTF´).ASDATE := STRTODATE(EDIT2.TEXT)
Um abraço,
Jair
29/11/2005
Neto
Eu realmente não mencionei mas estou executando o comando COMMANDTEXT mas a mensagem de erro permanece.
Esta estrutura uso com Paradox mas no FireBird tá dando este problema.
Mas tenho confiança que vamos encontrar o problema PORQUE O FIREBIRD FUNCIONA BEM NÉ.......
Abraços
Neto
30/11/2005
Jairroberto
O objeto TSQLDataSet não possui a propriedade ParamByName. Você deve estar usando a propriedade Params para fazer isso. O ideal seria você copiar o código exato que está gerando o erro para facilitar a identificação do problema. De qualquer forma, experimente atribuir os valores dos parâmetros pelo índice de cada um:
DM.SQLDTSETPEDIDOS.Params[0].AsInteger := CodigoPedido;
DM.SQLDTSETPEDIDOS.Params[1].AsDate := STRTODATE(EDIT1.TEXT)
DM.SQLDTSETPEDIDOS.Params[2].ASDATE := STRTODATE(EDIT2.TEXT)
Um abraço,
Jair
Clique aqui para fazer login e interagir na Comunidade :)