Comando SQL para Data
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 :
Me parece que ele está pegando uma formatação do tipo mm/dd/yyyy.
Olhem como estou gerando o SQL abaixo :
Alguem pode me ajudar ?
Desde já agradeço a atenção.
Maic Nogueira.
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
Curtidas 0
Respostas
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.
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
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
03/05/2006
Obrigado Joao,
Funcionou sim.
Vlw.
Abraços
Funcionou sim.
Vlw.
Abraços
GOSTEI 0