Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pat

parâmetros no dbexpress

Recommended Posts

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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.