TSqlClientDataSet - parametros en RunTime

27/09/2004

0

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:

[color=blue:8c10f67649]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) [/color:8c10f67649]

Agora passo os parametros dessa maneira (em RunTime):

[color=green:8c10f67649] 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;[/color:8c10f67649]

Agora meu CommandText ficou assim :

[color=blue:8c10f67649]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[/color:8c10f67649]

Quando executo a aplicação ela me retorna o seguinte erro :
´ Conversion error from string ´0´ ´
Ja mudei os formatos de data para [color=red:8c10f67649]´yyyy/dd/mm´ [/color:8c10f67649]e [color=red:8c10f67649]´mm/dd/yyyy´ [/color:8c10f67649]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


Alexrol

Alexrol

Responder

Posts

27/09/2004

Rômulo Barros

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 [color=red:14583da9ef]F.DATA_COMPRA Between (´27/08/2004´) and (´26/09/2004´)[/color:14583da9ef]
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);
[color=red:14583da9ef]CommandText:= CommandText + ´ and F.DATA_COMPRA Between (´+ QuoteDStr(TRIM(EdtDataAnt.Text)) +´)´;
CommandText:= CommandText+ ´ and (´+ QuoteDStr(TRIM(EdtDataAtual.Text)) + ´)´; [/color:14583da9ef]
CommandText:= CommandText+ ´ Order by F.COD_FILME´ ;
Memo1.Text := CommandText;
Open;
end;


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar