Comando SQL para Data

Delphi

03/05/2006

Boa tarde galera,

Estou tentando fazer uma query que vai pegar todos os registros que foram salvos
entre as datas que estão em meus Maskedits.

Não entendi o poruqe de não estar funcionando, porem eu acho que é o tipo de formatação da
data, pois quando eu insiro algum data neste campo direto do banco de dados, ele recebe
como dd/mm/yy.

Agora quando meu programa esta em execução e eu tento gerar o seguinte relatório
ele dá o seguinte erro :


Project SCP.exe raised exception Class EDataBaseError with message ´Database Server Error: Conversation error from string "20/10/2005"´.



Me parece que ele está pegando uma formatação do tipo mm/dd/yyyy.

Olhem como estou gerando o SQL abaixo :


DM.CdsRelFornecedor.Close;
DM.SqlRelFornecedor.CommandText :=
´Select * From Fornecedor ´ +
´Inner Join Tipo_Produto on Tipo_Produto.Cod_Fornecedor = ´ +
´Fornecedor.Cod_fornecedor ´ +
´Inner Join Material on Material.Cod_Material = ´ +
´Tipo_Produto.Cod_Material ´ +
´Inner Join Produto on Produto.Cod_Produto = ´ +
´Tipo_Produto.Cod_Produto ´ +
´Where Fornecedor.Cod_Fornecedor = ´ +
QuotedStr(CmbFornecedor.KeyValue) + ´ and ´ +
´Produto.Data Between ´ +
QuotedStr(MaskEdit1.Text) +
´ and ´ +
QuotedStr(MaskEdit2.Text);
DM.CdsRelFornecedor.Open;



Alguem pode me ajudar ?


Desde já agradeço a atenção.

Maic Nogueira.


Maic.rio

Maic.rio

Curtidas 0

Respostas

Joaoshi

Joaoshi

03/05/2006

Colega,

No SQL o formato de data padrão é MM/DD/YYYY.

Format o MaskEdit.

QuotedStr(FormatDateTime(´MM/DD/YYYY´,StrToDate(MaskEdit1.Text)) +
´ and ´ +
QuotedStr(FormatDateTime(´MM/DD/YYYY´,StrToDate(MaskEdit2.Text));

Espero ter ajudado.


GOSTEI 0
Rjun

Rjun

03/05/2006

Em vez de enfiar tudo isso via código, utilize parâmetros. Sua solução ficará mais legivel.


GOSTEI 0
Maic.rio

Maic.rio

03/05/2006

Obrigado Joao,

Funcionou sim.

Vlw.
Abraços


GOSTEI 0
POSTAR