info.desenvolvimento, primeiro, meu nome é Andrei e não André, mas não te preocupa, tu não é o primeiro nem o último que erra meu nome hehehe.
Segundo, você está passando os seus parâmetros com .value, ou seja, pode ser qualquer tipo de dado, aí você tem que alterar o DataType como você está fazendo. Eu utilizo como já te falei antes, .asInteger, .asString, .asDate, dessa forma, você já diz qual é o tipo do parâmetro que está passando. Nunca mexi em tempo de execução no DataType e no ParamType. Sempre fiz assim e nunca tive problemas. Pode referenciar os parametros pelo nome como te mostrei em e-mails anteriores. Eu acho + prático e o código fica + legível. Meu código seria algo do tipo: SQL_ANIVERFALEC.CLOSE; SQL_ANIVERFALEC.SQL.CLEAR; SQL_ANIVERFALEC.SQL.ADD('SELECT EXTRACT(DAY FROM IRMA.DTFALECIM) AS DIA, EXTRACT(MONTH FROM IRMA.DTFALECIM) AS MES,'); SQL_ANIVERFALEC.SQL.ADD('IRMA.CDRELIG, IRMA.NMOPCAO, IRMA.SOBRENOME, IRMA.NMCIVIL, IRMA.DTNASC, IRMA.DTFALECIM'); SQL_ANIVERFALEC.SQL.ADD('FROM'); SQL_ANIVERFALEC.SQL.ADD('IRMA'); SQL_ANIVERFALEC.SQL.ADD('WHERE'); SQL_ANIVERFALEC.SQL.ADD('IRMA.CDSITUAC = ''FALEC'' '); SQL_ANIVERFALEC.SQL.ADD('AND'); SQL_ANIVERFALEC.SQL.ADD('EXTRACT(MONTH FROM IRMA.DTFALECIM) BETWEEN :pMES and :pMES2'); SQL_ANIVERFALEC.ParamByName['pMes'].asInteger:= 0; SQL_ANIVERFALEC.ParamByName['pMes2'].asInteger:= 0; SQL_ANIVERFALEC.SQL.ADD('AND'); SQL_ANIVERFALEC.SQL.ADD('IRMA.IRMA.DTFALECIM BETWEEN :pDTFALEC AND :pDTFALEC2'); SQL_ANIVERFALEC.ParamByName['pDTFALEC'].asDateTime:= '00:00:00'; // aqui estou chutando, nunca mexi com horas, SQL_ANIVERFALEC.ParamByName['pDTFALEC2']].asDateTime:= '00:00:00'; // poderia trocar por .asDate se o parâmetro for uma data [] Andrei Em 30/03/06, info.desenvolvimento <[EMAIL PROTECTED]> escreveu: > > Aos Cuidados de André LuIS E rUbem Nascimento Rocha que me deram uma LUZ > nesse problema. > Olha só o que eu tive que fazer no meu SQL em tempo de execução. > > REL_ANIVERFALEC.SQL_ANIVERFALEC.CLOSE; > REL_ANIVERFALEC.SQL_ANIVERFALEC.SQL.CLEAR; > SQL_ANIVERFALEC.SQL.ADD('SELECT EXTRACT(DAY FROM IRMA.DTFALECIM) AS DIA, > EXTRACT(MONTH FROM IRMA.DTFALECIM) AS MES,'); > SQL_ANIVERFALEC.SQL.ADD('IRMA.CDRELIG, IRMA.NMOPCAO, IRMA.SOBRENOME, > IRMA.NMCIVIL, IRMA.DTNASC, IRMA.DTFALECIM'); > SQL_ANIVERFALEC.SQL.ADD('FROM'); > SQL_ANIVERFALEC.SQL.ADD('IRMA'); > SQL_ANIVERFALEC.SQL.ADD('WHERE'); > SQL_ANIVERFALEC.SQL.ADD('IRMA.CDSITUAC = ''FALEC'' '); > SQL_ANIVERFALEC.SQL.ADD('AND'); > SQL_ANIVERFALEC.SQL.ADD('EXTRACT(MONTH FROM IRMA.DTFALECIM) BETWEEN :pMES > and :pMES2'); > SQL_ANIVERFALEC.Params[0].DataType:= ftInteger; > SQL_ANIVERFALEC.Params[0].ParamType:= ptInputOutput; > SQL_ANIVERFALEC.Params[0].value:= 0; > SQL_ANIVERFALEC.Params[1].DataType:= ftInteger; > SQL_ANIVERFALEC.Params[1].ParamType:= ptInputOutput; > SQL_ANIVERFALEC.Params[1].value:= 0; > SQL_ANIVERFALEC.SQL.ADD('AND'); > SQL_ANIVERFALEC.SQL.ADD('IRMA.IRMA.DTFALECIM BETWEEN :pDTFALEC AND > :pDTFALEC2'); > SQL_ANIVERFALEC.Params[2].DataType:= ftDateTime; > SQL_ANIVERFALEC.Params[2].ParamType:= ptInputOutput; > SQL_ANIVERFALEC.Params[2].value:= '00:00:00'; > SQL_ANIVERFALEC.Params[3].DataType:= ftDateTime; > SQL_ANIVERFALEC.Params[3].ParamType:= ptInputOutput; > SQL_ANIVERFALEC.Params[3].value:= '00:00:00'; > > [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html