Você está usando a constante TBL_FillNormal no populate? ela só popula o que
é visível na tela, deixando o resto da carga para quando a barra de rolagem
for se movendo.
Como o select já está rápido, não sei se isso terá muita utilidade, mas é
como estou usando aqui.

  -----Mensagem original-----
  De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
nome de Rodrigo Scarano - Target Sistemas
  Enviada em: terça-feira, 18 de novembro de 2008 16:45
  Para: sqlwin@virtualand.net
  Assunto: RES: [sqlwin] Child Table TD 5.1 - Urgente.


  Olá George,



  O select está rápido sim. Na verdade chegamos ao “Populate” debbugando o
programa.

  Enfim: Estamos pesquisando por aqui.



  Obrigado pelo apoio.



  Abração!







  Rodrigo Scarano

  Target Sistemas
  * [EMAIL PROTECTED]

  Rua Turiassu, 390 - 2º Andar - Perdizes - SP
  CEP 05005-000 São Paulo Brasil

  Tel. SUPORTE: 55 11 3866 3466
  Tel.: 55 11 3801 4015

  site.: www.targetsis.com.br

  Tecnologia da Informação Aplicada ao Distribuidor



  -----Mensagem original-----
  De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Em
nome de George Hilton
  Enviada em: terça-feira, 18 de novembro de 2008 13:29
  Para: sqlwin@virtualand.net
  Assunto: RES: [sqlwin] Child Table TD 5.1 - Urgente.



  Rodrigo,



  seus exemplos são semelhantes ao código que tenho no meu sistema.
Infelizmente não sei o motivo dessa demora.

  Talvez a lentidão não seja por causa da classe que está utilizando e sim a
consulta que está trazendo.

  O select que popula a tabela executa rápido no banco de dados?



    -----Mensagem original-----
    De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
nome de Rodrigo Scarano - Target Sistemas
    Enviada em: terça-feira, 18 de novembro de 2008 13:42
    Para: sqlwin@virtualand.net
    Assunto: RES: [sqlwin] Child Table TD 5.1 - Urgente.

    Olá George,



    Obrigado pelo retorno.

    Na verdade nosso problema está na lentidão da população de uma tabela
MTable (com a função SalTblPopulate) e não na ordenação da mesma.





    Seguem os exemplos:



    Função para ordenação da coluna

    Function: FunColOrdenaColuna

                Description:

                Returns

                Parameters

                Static Variables

                Local variables

                            Window Handle: hWnd_col_ordena[*]

                            Number: nu_vet_sort_flags[*]

                Actions

                            Call SalWaitCursor( TRUE )

                            Set hWnd_col_ordena[0] = hWndItem

                            If boo_cres

                                       Set nu_vet_sort_flags[0] = MTS_DESC |
MTS_DT_DEFAULT

                                       Set boo_cres = FALSE

                            Else

                                       Set nu_vet_sort_flags[0] = MTS_ASC |
MTS_DT_DEFAULT

                                       Set boo_cres = TRUE

                            If NOT MTblSort( hWndForm, hWnd_col_ordena,
nu_vet_sort_flags )

                                       Set boo_cres = NOT boo_cres

                            Call SalTblClearSelection( hWndForm )

                            Call SalWaitCursor( FALSE )





    Código que utilizamos do MTable no SAM_Create da classe Tbl_Child

    ! Subclass - MTbl

    Call MTblSubClass( hWndItem )

    ! Cores alternadas de fundo nas linhas

    Call MTblSetAltRowBackColors( hWndItem, FALSE, CTE_Cor_01_Alt,
CTE_Cor_02_Alt )

    ! Ajusta cor da moldura da tabela ( cabeçalhos )

    Call MTblSetHeadersBackColor( hWndItem, CTE_Cor_Tela, MTSC_REDRAW )

    ! Habilita e define Tool Tip

    Call MTblEnableTipType( hWndItem, MTBL_TIP_CELL, TRUE )



    Obrigado e um abraço!





    Rodrigo Scarano

    Target Sistemas
    * [EMAIL PROTECTED]

    Rua Turiassu, 390 - 2º Andar - Perdizes - SP
    CEP 05005-000 São Paulo Brasil

    Tel. SUPORTE: 55 11 3866 3466
    Tel.: 55 11 3801 4015

    site.: www.targetsis.com.br

    Tecnologia da Informação Aplicada ao Distribuidor



    -----Mensagem original-----
    De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Em
nome de George Hilton
    Enviada em: terça-feira, 18 de novembro de 2008 10:40
    Para: sqlwin@virtualand.net
    Assunto: RES: [sqlwin] Child Table TD 5.1 - Urgente.



    Rodrigo,



    Verifiquei os fontes e além da SalTblSortRows  utilizamos também a
função MTblSort contida na dll mtbl.dll.

    Eu populo a tabela com um SalTblPopulate normal e depois uso a MTblSort.
Qual função você está utilizando para popular a tabela?

    Nâo percebi diferença no tempo de resposta das duas formas de
ordenações.

      -----Mensagem original-----
      De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
nome de Rodrigo Scarano - Target Sistemas
      Enviada em: terça-feira, 18 de novembro de 2008 11:01
      Para: Centura List
      Assunto: [sqlwin] Child Table TD 5.1 - Urgente.
      Prioridade: Alta

      Olá pessoal. Tudo certo?



      Estou com um problema urgente e gostaria de saber se alguém pode me
ajudar:



      Quando migramos nosso aplicativo do TD 4.2 para o TD 5.1, o comando
SalTblSortRows da Child Table começou a apresentar problemas de GPF. Após
várias reclamações o caso foi registrado como um BUG pela Ana Paula (Unify),
porém até o momento não foi resolvido. Cansamos de esperar por uma resposta
da Unify (até porque acho que eles não estão muito preocupados conosco) e
para contornar a situação, passamos a utilizar a classe “MTable” que não
apresenta o problema na ordenação. A questão é q o comando de Populate da
“MTable” é MUITO MAIS LENTO que o mesmo comando na Child Table e isso está
inviabilizando a utilização em nossos clientes. Gostaria de saber se alguém
do fórum utiliza a classe “MTable” e já enfrentou este tipo de situação de
lentidão.



      Qquer ajuda é bem vinda.



      Forte abraço!





      Rodrigo Scarano

      Target Sistemas
      * [EMAIL PROTECTED]

      Rua Turiassu, 390 - 2º Andar - Perdizes - SP
      CEP 05005-000 São Paulo Brasil

      Tel. SUPORTE: 55 11 3866 3466
      Tel.: 55 11 3801 4015

      site.: www.targetsis.com.br

      Tecnologia da Informação Aplicada ao Distribuidor




Responder a