Pat 0 Denunciar post Postado Novembro 17, 2006 OI GENTE! TÔ COM UM PROBLEMA Q ESTÁ DIFÍCIL DE RESOLVER. EU FAÇO A CONEXÃO COM O MYSQL ATRAVÉS DO DBEXPRESS. PRECISO FILTRAR DADOS ATRAVÉS DE UM PERÍODO QUE ESTABELEÇO ENTRE DUAS DATAS.QRO COLOCAR ESSAS DUAS DATAS(DATA1 E DATA2) COMO PARÂMETROS. FIZ TODO PROCEDIMENTO , MAS DA O SEGUINTE ERRO: 'CDS' ':FIELD DATA1 NOT FOUND'. USO UM CLIENTDATASET, DATASOURCE, DATASETPROVIDER, SQLDATASET E UMA QRY. ALGUÉM SABE COMO RESOLVER? Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Novembro 17, 2006 Já tentou fazer a consulta sem usar os parâmetros ? No caso teria como colocar o seu SQL ? Compartilhar este post Link para o post Compartilhar em outros sites
Pat 0 Denunciar post Postado Novembro 17, 2006 NÃO.. MAS NA QRY EU TENHO A PROPRIEDADE SQL.. E COLOQUEI ASSIM:select * from MEDICOES where DATA_MEDICOES between :data1 and :data2 ' :rolleyes: Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Novembro 17, 2006 Se clicar em Params, os parâmetros são exibidos ? Os tipos de campos para cada parâmetro esta certo ? No caso poderia mostrar como chama eles no fonte ? Compartilhar este post Link para o post Compartilhar em outros sites
Pat 0 Denunciar post Postado Novembro 17, 2006 SÃO.. MAS O Q ACONTECE É Q O CLIENTDATASET Q NÃO RECONHECE. COM ISSO NÃO CONSIGO ATIVAR A QUERY. AS PROPRIEDADES DELES SÃO INPUT E TIMESTAMP. dm.SQLQMedicoes.ParamByName('data1').AsDatetime:=DTPicker1.DateTime; dm.SQLQMedicoes.ParamByName('data2').AsDatetime:=DTPicker1.DateTime; dm.SQLQMedicoes.SQL.Add('select * from medicoes where data_medicoes between :data1 and :data2 '); Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Novembro 17, 2006 Faz um teste da seguinte forma: dm.SQLQMedicoes.SQL.Add('select * from medicoes where data_medicoes between :data1 and :data2');dm.SQLQMedicoes.ParamByName('data1').Value:=StrToDate(DateToStr(DTPicker1.Date));dm.SQLQMedicoes.ParamByName('data2').Value:=StrToDate(DateToStr(DTPicker2.Date)); Compartilhar este post Link para o post Compartilhar em outros sites
Pat 0 Denunciar post Postado Novembro 17, 2006 continua com o mesmo erro...qdo eu vou colocar na qry active=true dá esse erro:cdsmedicoes:field 'data1' not found Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Novembro 17, 2006 Como é o formato de data para pesquisas no MySQL ? Seria mais simples passar diretamente os valores, ou seja, se pode criar uma função que formata a data para o valor correto e passa os valores para a Query, sem o uso de parâmetros... Certamente não teria este tipo de erro... Compartilhar este post Link para o post Compartilhar em outros sites
Pat 0 Denunciar post Postado Novembro 17, 2006 mm/dd/aaaa. mas eu estou usando timestamp, então vem assim:0000-00-00 00:00:00 Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Novembro 17, 2006 Isso não irá influenciar, você poderá pesquisar por data somente, pode fazer algo do tipo: Crie uma função que faça algo do tipo: function TForm.DataMMDDAAAA(data: string): string;var str: string;beginstr:=data[4]+data[5]+'/'+data[1]+data[2]+'/'+data[7]+data[8]+data[9]+data[10];DataMMDDAAAA:=str;end; Depois você utiliza assim: dm.SQLQMedicoes.SQL.Close;dm.SQLQMedicoes.SQL.SQL.Clear;dm.SQLQMedicoes.SQL.Add('select *');dm.SQLQMedicoes.SQL.Add('from medicoes');dm.SQLQMedicoes.SQL.Add('where data_medicoes between ''' + DataMMDDAAAA(DateToStr(DTPicker1.Date)) + ''' and ''' + DataMMDDAAAA(DateToStr(DTPicker2.Date) + '''');dm.SQLQMedicoes.SQL.Open; Compartilhar este post Link para o post Compartilhar em outros sites