Pesquisa ente periodos com substring
Pessoal
Estou com um problema...
Tenho uma tabela em DBF que possui o contas a raceber de uma determinada empresa.
Estou fazendo uma select para que ele me retorne todos os registros entre um periodo onde ele faz a comparação entre os campos DATA_EMISSÃO que esta em char.
O meu campo de input é uma string tb.
O que acontece:
Quando eu rodo esse select no database explore do delphi ela me retorna os dados pedidos
SELECT * FROM IC_CNTF
WHERE SUBSTRING(EMI_CNTF FROM 7 FOR 4)+SUBSTRING(EMI_CNTF
FROM 4 FOR 2)+SUBSTRING(EMI_CNTF FROM 1 FOR 2) >= ´20041201´;
AND SUBSTRING(EMI_CNTF FROM 7 FOR 4)+SUBSTRING(EMI_CNTF FROM 4 FOR 2)+SUBSTRING(EMI_CNTF FROM 1 FOR 2) = ´+inicio+´´);
SQL.Add(´AND SUBSTRING(EMI_CNTF FROM 7 FOR 4)+SUBSTRING(EMI_CNTF FROM 4 FOR 2)+SUBSTRING(EMI_CNTF FROM 1 FOR 2) <= ´+fim+´´);
Open;
end;
OBS: inicio e fim são parametros de entrada usando edit´s
Alguem poderia me ajudar ???
[]´s
Marcos
Estou com um problema...
Tenho uma tabela em DBF que possui o contas a raceber de uma determinada empresa.
Estou fazendo uma select para que ele me retorne todos os registros entre um periodo onde ele faz a comparação entre os campos DATA_EMISSÃO que esta em char.
O meu campo de input é uma string tb.
O que acontece:
Quando eu rodo esse select no database explore do delphi ela me retorna os dados pedidos
SELECT * FROM IC_CNTF
WHERE SUBSTRING(EMI_CNTF FROM 7 FOR 4)+SUBSTRING(EMI_CNTF
FROM 4 FOR 2)+SUBSTRING(EMI_CNTF FROM 1 FOR 2) >= ´20041201´;
AND SUBSTRING(EMI_CNTF FROM 7 FOR 4)+SUBSTRING(EMI_CNTF FROM 4 FOR 2)+SUBSTRING(EMI_CNTF FROM 1 FOR 2) = ´+inicio+´´);
SQL.Add(´AND SUBSTRING(EMI_CNTF FROM 7 FOR 4)+SUBSTRING(EMI_CNTF FROM 4 FOR 2)+SUBSTRING(EMI_CNTF FROM 1 FOR 2) <= ´+fim+´´);
Open;
end;
OBS: inicio e fim são parametros de entrada usando edit´s
Alguem poderia me ajudar ???
[]´s
Marcos
Marcosmp
Curtidas 0
Respostas
Gandalf.nho
21/12/2004
Tente assim:
With DM.qryTable1 do
begin
SQL.Clear;
SQL.Add(´SELECT * FROM ´+Path2+´ ´);
SQL.Add(´WHERE SUBSTRING(EMI_CNTF FROM 7 FOR 4)+SUBSTRING (EMI_CNTF FROM 4 FOR 2)+SUBSTRING(EMI_CNTF FROM 1 FOR 2) >= ´+QuotedStr(inicio)+´´);
SQL.Add(´AND SUBSTRING(EMI_CNTF FROM 7 FOR 4)+SUBSTRING(EMI_CNTF FROM 4 FOR 2)+SUBSTRING(EMI_CNTF FROM 1 FOR 2) <= ´+QuotedStr(fim)+´´);
Open;
end;
With DM.qryTable1 do
begin
SQL.Clear;
SQL.Add(´SELECT * FROM ´+Path2+´ ´);
SQL.Add(´WHERE SUBSTRING(EMI_CNTF FROM 7 FOR 4)+SUBSTRING (EMI_CNTF FROM 4 FOR 2)+SUBSTRING(EMI_CNTF FROM 1 FOR 2) >= ´+QuotedStr(inicio)+´´);
SQL.Add(´AND SUBSTRING(EMI_CNTF FROM 7 FOR 4)+SUBSTRING(EMI_CNTF FROM 4 FOR 2)+SUBSTRING(EMI_CNTF FROM 1 FOR 2) <= ´+QuotedStr(fim)+´´);
Open;
end;
GOSTEI 0