Select no Delphi com mais valores
22/01/2010
0
Fala Pessoal,
Estou com o seguinte problema, tenho esse select no firebird porem o mesmo não estou conseguindo passar para o delphi com algums mudanças:
Select : select t_usuario.id, t_usuario.nome, t_usuario.numero, t_usuario.regiao
from t_usuario
left join t_movimentacao on t_movimentacao.id_usuario = t_usuario.id
where t_usuario.id not in ( select id_usuario from t_movimentacao where mes = 'JANEIRO')
and t_regiao.regiao in ('RIO CLARO','SÃO PAULO') Esse é um select que tem uma condição com mais valores porem quando eu jogo ela no delphi eu quero que esses dois valores sejam de uma variavel. assim : dm.cds_movimentacao.close;
dm.sql_movimentacao.close;
dm.sql_movimentacao.commandtext := ' select t_usuario.id, t_usuario.nome, t_usuario.numero, t_usuario.regiao from t_usuario'+
' left join t_movimentacao on t_usuario.id = t_movimentacao.id_usuario'+
' where t_usuario.id not in ( select id_usuario from t_movimentacao where mes = ''' + v_mes + ''')'+
' and regiao in (''' + v_rc + ''',''' + v_sp34 + ''', )';
dm.cds_movimentacao.open; acontece o seguinte que essas minhas variaveis V-rc, v_sp34 não exatamente irá ter um valor, é bem flexivel os valores dela pode ser que somente 1 receba um valor e a outra não e pode ser que as duas recebam valores ai eu preciso consultar quando tem 1 com valor e quando tem as duas com valores quando as duas estão com valores a consulta funciona normal mas quando comente 1 está com valor ele dá um erro de conversão de string deve ser pq ele está tentando converter a variavel que está sem valor , mas como eu faço para anular essa variavel quando está sem valor. OBS: Delphi 7 e firebird 2.0 No aguardo
left join t_movimentacao on t_movimentacao.id_usuario = t_usuario.id
where t_usuario.id not in ( select id_usuario from t_movimentacao where mes = 'JANEIRO')
and t_regiao.regiao in ('RIO CLARO','SÃO PAULO') Esse é um select que tem uma condição com mais valores porem quando eu jogo ela no delphi eu quero que esses dois valores sejam de uma variavel. assim : dm.cds_movimentacao.close;
dm.sql_movimentacao.close;
dm.sql_movimentacao.commandtext := ' select t_usuario.id, t_usuario.nome, t_usuario.numero, t_usuario.regiao from t_usuario'+
' left join t_movimentacao on t_usuario.id = t_movimentacao.id_usuario'+
' where t_usuario.id not in ( select id_usuario from t_movimentacao where mes = ''' + v_mes + ''')'+
' and regiao in (''' + v_rc + ''',''' + v_sp34 + ''', )';
dm.cds_movimentacao.open; acontece o seguinte que essas minhas variaveis V-rc, v_sp34 não exatamente irá ter um valor, é bem flexivel os valores dela pode ser que somente 1 receba um valor e a outra não e pode ser que as duas recebam valores ai eu preciso consultar quando tem 1 com valor e quando tem as duas com valores quando as duas estão com valores a consulta funciona normal mas quando comente 1 está com valor ele dá um erro de conversão de string deve ser pq ele está tentando converter a variavel que está sem valor , mas como eu faço para anular essa variavel quando está sem valor. OBS: Delphi 7 e firebird 2.0 No aguardo
Clei Martins
Curtir tópico
+ 0
Responder
Posts
22/01/2010
Alan Souza
antes de executar sua consulta, vc vai ter que concatenar suas variáveis em uma string com o formato correto aceito no in, e aí sim passar essa string formatada pra consulta, para evitar passar duas vírgulas juntas ou coisa do gênero.
Responder
Clique aqui para fazer login e interagir na Comunidade :)