Caro Fernando,

Creio que o problema é o seguinte: como no sqltest da coluna cli_nome
você tem uma expressão '%'+nome+'%', o que ocorre é que o argumento
deste sqltest nunca será vazio, portanto o seu type="nb" não está
fazendo efeito. Uma alternativa é você colocar uma expressão um pouco
mais complexa, assim:

nome and '%'+nome+'%' or ''

Testando no Python:

>>> nome = ''
>>> nome and '%'+nome+'%' or ''
''
>>> nome = 'gioconda'
>>> nome and '%'+nome+'%' or ''
'%gioconda%'
>>>

Ou seja, se o nome é não-vazio, a expressão produz o nome entre %%, se
o nome é vazio, a expressão produz uma string vazia.

Espero que isso funcione para você, porque não tive tempo de testar no Zope.

[ ]s
Luciano


On Jan 8, 2008 2:20 PM, pythondeveloper <[EMAIL PROTECTED]> wrote:
> SELECT cli_codigo, cli_nome, cli_cnpj
> FROM cliente
> <dtml-sqlgroup where>
>    <dtml-sqltest codigo column="cli_codigo" op="eq" type="nb" optional>
>       <dtml-or>
>    <dtml-sqltest expr="'%'+nome+'%'" column="cli_nome" op="like"
> type="nb">
> </dtml-sqlgroup>
> ORDER BY cli_codigo, cli_nome
>
> Quando pesquiso por nome, essa consulta me retorna apenas o nome que
> pesquiso.
>
> Ex:
>
> nome=fernando
>
> Ela me retorna todos os fernandos gravados na tabela cliente. Agora
> quando pesquiso por código ela me retorna não apenas o código que
> pesquiso mas sim todos os códigos da tabela.
>
> Ex:
>
> codigo = 66
>
> ela retorna
>
> 1 = Alonso
>
> 2 = Beto
>
> 3 = Camargo
>
> 66 = Fernando
>
> 67 = Gabriel
>
> Alguma dica sobre como fazer para retornar apenas o código que preciso ?
>
> abs
>
>
>
> Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
> Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED]
> Links do Yahoo! Grupos
>
>
>

Responder a