[firebase-br] Funcionamento confuso? com D6+DBX+FB1.5 - Ajuda p/entender

oswaldosa oswaldosa em ig.com.br
Sex Ago 12 17:40:23 -03 2005


Olá Eduardo e amigos... 

Aqui vai o select completo para vc ver, não entendo ser o caso...no DSP eu 
inclusive redeclaro o nome da Tabela p/ele não se perder... 

SELECT 
    C.COD_CLI,  C.NOME_CLIENTE,  C.SOBRENOME_CLIENTE, 
    C.STATUS_INTERNO,   C.COD_CATEGORIA,  C.DT_CADASTRO, 
     C.ULT_CONTATO, C.APELIDO_CLIENTE, 
    C.SITUACAO_FINANCEIRA,  C.ENDERECO, C.COMPLEMENTO,C.BAIRRO, 
    C.CIDADE, C.UF,  C.CEP, C.CNPJ,  C.INSCR_ESTADUAL,  C.DATANASC, 
    C.TEL01,  C.TEL02, C.FAX, C.CELULAR, C.EMAIL, C.CRIADOR, 
    (SELECT CAT.CATEGORIA FROM CAT_CLIENTES CAT WHERE CAT.COD_CATEGORIA = 
C.COD_CATEGORIA) AS NOME_CATEGORIA, 
    (SELECT COUNT(*) FROM ANIMAIS A WHERE A.COD_CLI = C.COD_CLI) AS 
QT_ANIMAIS, 
    (SELECT COUNT(*) FROM ANIMAIS A WHERE A.COD_CLI = C.COD_CLI AND 
A.PEDIGREE IS NOT NULL AND A.PEDIGREE<>'') AS QT_COM_PEDIGREE, 
    (SELECT COUNT(*) FROM ANIMAIS A WHERE A.COD_CLI = C.COD_CLI AND 
A.AG_MATRIMONIAL = 'Y') AS QT_AGENCIA, 
    case C.STATUS_INTERNO 
      when '1' then 'Cliente Ativo' 
      when '2' then 'Cliente Inativo' 
      when '3' then 'Prospect' 
      else 
         'Sem Status Definido' 
  end as DESCRICAO_STATUS, 
   case C.SITUACAO_FINANCEIRA 
      when '1' then 'Situação Financeira OK' 
      when '2' then 'Crediário OK' 
      when '3' then 'Inadimplente' 
      when '4' then 'Cheques Devolvidos' 
      when '5' then 'Problema com Cartão de Crédito' 
      else 
         'Não Cadastrada' 
  end as DESCRICAO_SIT_FINANCEIRA 
FROM 
    CLIENTES C 
WHERE 
    (C.BAIRRO LIKE :BAIRRO OR :BAIRRO_TODOS = 1)  AND 
    (C.CIDADE LIKE :CIDADE OR :CIDADE_TODOS = 1)  AND 
    (C.UF = :UF OR :UF_TODOS = 1)  AND 
    (C.STATUS_INTERNO = :STATUS_INTERNO OR :STATUS_INTERNO = '0')  AND 
    (C.SITUACAO_FINANCEIRA = :SIT_FINANCEIRA OR :SIT_FINANCEIRA = '0')  AND 
    (C.COD_CATEGORIA = :COD_CATEGORIA OR :COD_CATEGORIA = 0) AND 
    (C.DT_CADASTRO BETWEEN :DT_INICIO AND :DT_FIM OR :TODOS_DTCAD = 1) AND 
    (C.CRIADOR = :CRIADOR_PETS OR :CRIADOR_PETS = '') 
ORDER BY C.SITUACAO_FINANCEIRA, C.NOME_CLIENTE, C.COD_CLI 


A única coisa que muda em cada um deles é o final, justamente o order...E 
uma coisa que chamou a minha atenção é que se eu usar a Indexação com 
ClientDataSet não funciona mesmo... 


[]'s 
Oswaldo 

Em (17:03:07), FireBase escreveu: 


>Olá oswaldo 
> 
>> Funciona ORDER BY C.SITUACAO_FINANCEIRA, C.NOME_CLIENTE, C.COD_CLI 
>> Mas ORDER BY C.BAIRRO, C.NOME_CLIENTE, C.COD_CLI não funciona 
>> agora ORDER BY C.BAIRRO, C.NOME_CLIENTE, C.SOBRENOME_CLIENTE funciona... 
>> 
>> Alguém sabe o porquê disto? 
>> Isto é um problema com o driver do DBExpress? OU sou eu mesmo que estou 
>> errando e não entendi como funciona isto direito. 
> 
>Tenho percebido que o FB (uso o 1.5.2), em alguns casos onde a coluna 
>pedida no ORDER BY não está no ResultSet, se perde na ordenação. 
>Às vezes sou obrigado a colocar determinadas colunas na consulta só para 
>me certificar que a ordenação vai ser respeitada. 
>Como na época do piradox SEMPRE tinha que estar no ResultSet, não achei 
>tão ruim assim. 
> 
>Tenho percebido este comportamento em consultas envolvendo JOINS e que o 
>ORDER não é feito em colunas da tabela principal. 
> 
>Talvez outros colegas possam entrar e dar uma luz sobre isso. 
> 
>[]s Eduardo 
> 
>______________________________________________ 
>FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br 
>Para editar sua configuração na lista, use o endereço 
>http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br 
>Para consultar mensagens antigas: http://firebase.com.br/pesquisa 
> 
>---------- 


Mais detalhes sobre a lista de discussão lista