passagem de uma data como parametro sql em tabela paradox
30/10/2013
0
A data será obtida em um componente DateEdit; na tabela, o campo DtLANCA foi definido como DATE
na minha procedure esta assim:
PROCEDURE...
var
vdata : ?? <<<<>>>>> não sem como definir esta variavel
Begin
vdata := DateEdit.Text <<<<<>>>>> apos a definicao da variavel, como fazer a conversão?
Após isto, as linhas abaixo estão corretas?,
Dtm.DepuraDizimo.Sql.Clear;
Dtm.DepuraDizimo.Sql.Add(''Select * From DepuraDizimo'');
Dtm.DepuraDizimo.Sql.Add(''Where DTLANCA = :vdata'');
Dtm.DepuraDizimo.Sql.ParamByName(vdata) := vData;
Dtm.DepuraDizimo.ExecSql;
Dtm.DepuraDizimo.Open;
.
.
.
Agradeço.
Gilberto Moreira
Posts
31/10/2013
Marcos Oliveira
Você pode declarar a variável como String ou TDate;
Pra pegar o conteúdo do DBEdit, faça o seguinte:
[code]
var
Data: String;
begin
Data := DBEdit1.Text;
end;
/code]
ou
var
Data: TDate;
begin
Data := StrToDate(DBEdit1.Text);
end;
Att,
Marcos
31/10/2013
Gilberto Moreira
procedure Tfrm_DepuraDizimo.BtnAplicarFiltroClick(Sender: TObject);
Var
vdata : Tdate;
begin
vData := StrToDate(DateEdit1.Text);
ShowMessage(DateToStr(vData));
Dtm_Secre.qDepuraDizimo_O.Close;
Dtm_Secre.qDepuraDizimo_O.Sql.Clear;
Dtm_Secre.qDepuraDizimo_O.Sql.Add('Select * From DepuraDizimo');
Dtm_Secre.qDepuraDizimo_O.Sql.Add('Where DtLanca = :vData');
Dtm_Secre.qDepuraDizimo_O.ParamByName('vData').Value:= vData;
Dtm_Secre.qDepuraDizimo_O.ExecSql;
Dtm_Secre.qDepuraDizimo_O.Open;
Qrp_DepuraDizimo.Preview;
end;
Esta apresentando a seguinte mensagem: "TYPE MISMATCH IN EXPRESSION"!
31/10/2013
Marcos Oliveira
Dtm_Secre.qDepuraDizimo_O.ParamByName('vData').AsDateTime:= vData;
Att,
Marcos
31/10/2013
Gilberto Moreira
Gostaria de lhe pedir outras duas orientações, se possivel:
1ª - A sintaxe para uso de COUT e de SUN no paradox. Tudo que tento da erro.
Neste caso estou precisando somar os valores (soma algebrica, pois os estornos são feitos lançando o mesmo valor com sinal negativo) dentro da data que conseguimos filtrar (na sua ajuda anterior) e a quantidade de ocorrencias.
o ultimo teste que realizei foi com a seguinte sintaxe: SELECT VALOR SUN(VALOR) AS VTOTAL FROM DEPURADIZIMO WHERE DTLANCA = :VDATA, retorna erro em SUN(VALOR)
2ª - Toda vez que fecho o sistema, retorna mensagem de erro: ACCESS VIOLATION AT ADDRESS XXXXXXXX. READ OF ADDRESS XXXXXXXXX (xxxx são endereços em hexadecimal). além de todo o incoveniente, quando vou desligar o micro repete erro semelhante e preciso desliga-lo "na tomada".
att
gilberto
31/10/2013
Marcos Oliveira
// O SUM é com "M" e não com "N" SELECT SUM(VALOR) AS VTOTAL FROM DEPURADIZIMO WHERE DTLANCA = :VDATA;
Att,
Marcos
02/11/2013
Gilberto Moreira
para resolver momentaneamente, fiz um laço While... do para somar e para contar as quantidades, mas quero descobrir como funciona no paradox.
Quanto à mensagem de erro na hora de fechar o relatotrio, ainda permanece.
de outra forma, agradeço sua ajuda.
Clique aqui para fazer login e interagir na Comunidade :)