Array
(
)

TSqlClientDataSet - parametros en RunTime

Alexrol
   - 27 set 2004

Ola a todos

Preciso passar Tres parametros para o Componente TSQlClientDateSet da paleta DbExpress
em tempo de execução (RunTime).
O Meu CommandText dentro do componente é o seguinte:

Select F. COD_FILME,
F.COD_CLASS,
F.DATA_COMPRA,
F.TITULO_FILME,
C.DESC_CLASS
From VW_FILMES F
Join Vw_Classificacao C on (C.Cod_CLass = F.Cod_Class)

Agora passo os parametros dessa maneira (em RunTime):

With Sql_Filmes do
begin
Close;
CommandText:= sql;// Select informado acima no CommandText do Comp.
CommandText:= CommandText+ ´ Where F.COD_CLASS= ´+IntToStr(CodClass);
CommandText:= CommandText+ ´ and F.DATA_COMPRA Between (´+ TRIM(EdtDataAnt.Text) +´)´;
CommandText:= CommandText+ ´ and (´+ TRIM(EdtDataAtual.Text) + ´)´;
CommandText:= CommandText+ ´ Order by F.COD_FILME´ ;
Memo1.Text := CommandText;
Open;
end;

Agora meu CommandText ficou assim :

Select F. COD_FILME,
F.COD_CLASS,
F.DATA_COMPRA,
F.TITULO_FILME,
C.DESC_CLASS
From VW_FILMES F
Join Vw_Classificacao C on (C.Cod_CLass = F.Cod_Class)
Where F.COD_CLASS = 1 and F.DATA_COMPRA Between (27/08/2004) and (26/09/2004)
Order by F.COD_FILME

Quando executo a aplicação ela me retorna o seguinte erro :
´ Conversion error from string ´0´ ´
Ja mudei os formatos de data para ´yyyy/dd/mm´ e ´mm/dd/yyyy´ e mesmo assim ocorre o erro


não sei mais o que fazer , se ajguem puder me ajudar agradeço desde já...
ou se vc souber como adicionar parametros em rumtime par o componente
muito obrigado


Rômulo Barros
   - 27 set 2004

Problema simples, amigo.. já passei muito por isso utilizando o Oracle.

A sua data deve estar entre aspas. Veja:

Select F. COD_FILME,
F.COD_CLASS,
F.DATA_COMPRA,
F.TITULO_FILME,
C.DESC_CLASS
From VW_FILMES F
Join Vw_Classificacao C on (C.Cod_CLass = F.Cod_Class)
Where F.COD_CLASS = 1 and F.DATA_COMPRA Between (´27/08/2004´) and (´26/09/2004´)
Order by F.COD_FILME

Para isso, uso o comando QuoteDStr();

Segue o código correto:

With Sql_Filmes do
begin
Close;
CommandText:= sql;// Select informado acima no CommandText do Comp.
CommandText:= CommandText+ ´ Where F.COD_CLASS= ´+IntToStr(CodClass);
CommandText:= CommandText + ´ and F.DATA_COMPRA Between (´+ QuoteDStr(TRIM(EdtDataAnt.Text)) +´)´;
CommandText:= CommandText+ ´ and (´+ QuoteDStr(TRIM(EdtDataAtual.Text)) + ´)´;
CommandText:= CommandText+ ´ Order by F.COD_FILME´ ;
Memo1.Text := CommandText;
Open;
end;