Usuários mais ativos no mês 12/2019
  1. henrique.muller

    843 Pontos

  2. paulo.silva

    842 Pontos

  3. maicon.pereira

    582 Pontos

  4. juliano.pezzini

    464 Pontos

  5. leandro.piscke

    428 Pontos

  6. diuari.molinari

    391 Pontos

  7. dirceu.schlickmann

    347 Pontos

  8. Camila

    288 Pontos

  9. bruno.cardoso

    272 Pontos

  10. Rafael Leonhardt

    253 Pontos

Estou passando dois handles para a função BuildINSqlClause e retorna apenas um.

+4 votos
36 visitas
O código abaixo não está funcionando conforme esperado:

sWhere := sWhere + ' AND ' + CurrentSystemWrapper.BuildINSqlClause('HANDLE', _dbProduto.GetSelectedHandles, True);
perguntou Mai 22, 2014 por aronildo.mueller (33 pontos)
editado Mai 22, 2014 por João Paulo Gonçalves

1 Resposta

+3 votos
 
Melhor resposta

A função do TBFilter GetSelectedHandles retorna a lista de handles separados virgula.

A função BuildINSqlClause espera uma lista de handles separada por pipe.

Um cuidado extra com a função BuildINSqlClause é que o terceiro parâmetro informa se é uma lista com descrição, obtida por um campo do tipo filtro, onde os handles estão dispostos no formato 1|_|2|_|3|_

Veja exemplos:

Sistema.BuildINSqlClause("A.HANDLE", "1|_|2|_|3|_", True);

Sistema.BuildINSqlClause("A.HANDLE", "1|2|3", False);

Sistema.BuildINSqlClause("A.HANDLE", "1,2,3", False); // Ops, deve ser com PIPE.

 

Documentação do BuildINSqlClause disponível em:

http://wiki.benner.com.br/wiki/index.php?title=BSistema.BuildINSqlClause

respondida Mai 22, 2014 por dirceu.schlickmann (347 pontos)
selecionada Mai 30, 2014 por henrique.muller
Você sabia? O campo TBFilter originalmente gravava as informações no formato:
1|Maria|2|João|3|Marta

Se os registros fosem alterados o TBFilter mostrava o valor antigo do registro.
Por isso não é mais gravada a legenda do registro, porém o formato deveria ser mantido, logo passou-se a gravar: 1|_|2|_|3|_.
...