Página 1 de 1

Erro de Memória Itens na Grid

Enviado: 26 Mar 2013 11:17
por guanabara
Bom dia, tenho o código do sistema em anexo que funcionava perfeitamente até fazer uma pesquisa que carrega na grid mais de 2 milhões de itens, daí gera o erro abaixo, alguém tem alguma sugestão de como evitar este erro para que eu possa exportar o arquivo corretamente, pois to tentando desde ontem e nada consegui, minto, rodou uma vez em uma outra máquina aqui da empresa...

Application Internal Error - C:\SGF\Sgf.exe
Terminated at: 2013.03.25 15:23:30
Unrecoverable error 9006: hb_xgrab can't allocate memory
Called from GETWINDOWTEXT(0)
Called from _GETVALUE(195) in source\h_controlmisc.prg
Called from GETPROPERTY(6939) in source\h_controlmisc.prg
Called from BUSQUEDA(314) in D:\SGF1\indeferidos.prg
Called from (b)ADMINISTRADORDETIPOS(145) in D:\SGF1\indeferidos.prg
Called from _DOCONTROLEVENTPROCEDURE(5383) in source\h_windows.prg
Called from EVENTS(1946) in source\h_windows.prg
Called from _DOMESSAGELOOP(0)
Called from _ACTIVATEWINDOW(5042) in source\h_windows.prg
Called from ADMINISTRADORDETIPOS(246) in D:\SGF1\indeferidos.prg
Called from (b)MAIN(57) in D:\SGF1\main.prg
Called from _DOCONTROLEVENTPROCEDURE(5383) in source\h_windows.prg
Called from EVENTS(1498) in source\h_windows.prg
Called from _DOMESSAGELOOP(0)
Called from _ACTIVATEWINDOW(5042) in source\h_windows.prg
Called from MAIN(93) in D:\SGF1\main.prg
------------------------------------------------------------------------

MAIN

Código: Selecionar todos

#include "hmg.ch"

Function Main

///////////////////////////////////////////////////////////////////////////////
// Inicializacion RDD DBFCDX Nativo
///////////////////////////////////////////////////////////////////////////////

	REQUEST DBFCDX , DBFFPT
	RDDSETDEFAULT( "DBFCDX" )

///////////////////////////////////////////////////////////////////////////////

	SET DATE FRENCH
	SET CENTURY ON
   

  
   
*------------------------------------------------------------------------------*
*                    INICIO DO FORMULARIO DO WINDOWS
*------------------------------------------------------------------------------*
      
	DEFINE WINDOW Principal ;
		AT 0,0 ;
		WIDTH 640 ;
		HEIGHT 480 ;
		TITLE 'Sistema dos Indeferidos - Banco de Dados: 2009 - 2012' ;
		MAIN
      
      
*------------------------------------------------------------------------------*
*                             IMAGEM DE FUNDO
*------------------------------------------------------------------------------*
            
      
      DEFINE IMAGE Fundo
        ROW    0
        COL    0
        WIDTH  1390
        HEIGHT 670
        PICTURE "Fundo.jpg"
        HELPID Nil
        VISIBLE .T.
        STRETCH .T.
        ACTION Nil
    END IMAGE
      
*------------------------------------------------------------------------------*
*                             BARRA DO MENU
*------------------------------------------------------------------------------*
      
	   DEFINE MAIN MENU
      
			DEFINE POPUP '&Programas'

				MENUITEM '&Sistema dos Indefiridos'	ACTION AdministradorDeTipos()
				SEPARATOR
				MENUITEM '&Sair'		ACTION EXIT PROGRAM
            
			END POPUP
         
         
			DEFINE POPUP '&Ajuda'
				MENUITEM '&Reindexar Arquivos' ACTION Reindexar()
            SEPARATOR
            MENUITEM 'Sobre' ACTION Ajuda()
			END POPUP
         
         
		END MENU
		
*------------------------------------------------------------------------------*
*                               BARRA DE STATUS
*------------------------------------------------------------------------------*
         
		DEFINE STATUSBAR 
			STATUSITEM " Hacker 2013© - V. 1.1 - Banco de Dados: 2009 - 2012 " 
			CLOCK 
			DATE 
		END STATUSBAR
      
      
*------------------------------------------------------------------------------*
*                   FIM DO FORMULARIO DO WINDOWS
*------------------------------------------------------------------------------*     
      
      

       END WINDOW 

	MAXIMIZE WINDOW Principal 
	ACTIVATE WINDOW Principal
 


*------------------------------------------------------------------------------*
*                               MENU AJUDA
*------------------------------------------------------------------------------* 
   
FUNCTION AJUDA

MsgInfo ('Produzido por' + Chr(13) + Chr(10) + 'Hacker 2013© - V. 1.1', [Sobre] )


*CLOSE ALL
   
*REQUEST DBFCDX
*RDDSETDEFAULT( "DBFCDX" )
*DBUSEAREA(.T.,,"SGF.dbf","dbf",,.f.)
*SET INDEX TO "SGF.cdx"
*dbf->( OrdSetFocus(0) )

*WAIT WINDOW "Aguarde..... Convertendo Arquivos... Podendo Demorar..."  NOWAIT

*DO WHILE .NOT. EOF()
*
*           cAData = NASC
*           cDia   := SUBSTR(cAData, 7, 2)
*           cMes   := SUBSTR(cAData, 5, 2)
*           cAno   := SUBSTR(cAdata, 1, 4)
*           cNData := cDia + cMes + Cano
*           
*           cAData1 = DER
*           cDia1   := SUBSTR(cAData1, 7, 2)
*           cMes1   := SUBSTR(cAData1, 5, 2)
*           cAno1   := SUBSTR(cAdata1, 1, 4)
*           cNData1 := cDia1 + cMes1 + Cano1
*           
*           cAData2 = DTIND
*           cDia2   := SUBSTR(cAData2, 7, 2)
*           cMes2   := SUBSTR(cAData2, 5, 2)
*           cAno2   := SUBSTR(cAdata2, 1, 4)
*           cNData2 := cDia2 + cMes2 + Cano2       
*          
*		     REPLACE NASC   WITH  cNData,;
*		             DER	WITH  cNData1,;
*                   DTIND  WITH  cNData2           
*    SKIP     
*ENDDO


*  CLOSE ALL 
*  WAIT CLEAR
 
*MSGBOX ("ARQUIVOS CONVERTIDOS COM SUCESSO")

*MSGBOX(CURDIR())


RETURN
 
*------------------------------------------------------------------------------* 
 
RETURN // GERAL DO MAIN - NAO APAGAR //


INDEFERIDOS

Código: Selecionar todos

#include 'hmg.ch'


PROCEDURE AdministradorDeTipos

*------------------------------------------------------------------------------*
*                             FORMULARIO DO WINDOWS
*------------------------------------------------------------------------------*
  
	DEFINE WINDOW Win_1				;
		AT 43,4					;
		WIDTH 1350				;
		HEIGHT 660				;
		TITLE 'Sistema dos Indefiridos - By Hacker©'		;
		MODAL   			;
      FONT 'ARIAL' SIZE 9			;
		NOSIZE 
          
*------------------------------------------------------------------------------*
*                             BANCO DE DADOS
*------------------------------------------------------------------------------*   

CLOSE ALL
   
REQUEST DBFCDX
RDDSETDEFAULT( "DBFCDX" )
DBUSEAREA(.T.,,"SGF.dbf","dbf",,.f.)

 If !File("SGF.cdx")
 
   WAIT WINDOW "Aguarde..... Reindexando Arquivos... Podendo Demorar..."  NOWAIT 
   dbf->(OrdCreate("SGF.cdx" , "Muncipio"  , "dbf->mun"  ,{|| dbf->mun } ))
   dbf->(OrdCreate("SGF.cdx" , "UF"        , "dbf->uf"   ,{|| dbf->uf  } ))
   
   WAIT CLEAR
   MsgBox( "Arquivos Reindexados com Sucesso !!!" + CHR(13) + "Continue Trabalhando..." )
   
 Endif

SET INDEX TO "SGF.cdx"
dbf->( OrdSetFocus(0) )


Private aPesq:={"MUNICIPIO", "SIGLA - UF"}


*------------------------------------------------------------------------------*
*                               MODO PESQUISA
*------------------------------------------------------------------------------*
	
	 	DEFINE LABEL Label_ModoPesquisa
         ROW    5
         COL    20
         WIDTH  300
         HEIGHT 15
         VALUE 	'Modo Pesquisa    -    Campo Pesquisa'
         FONTBOLD .T.
		END LABEL


*------------------------------------------------------------------------------*
*                      LABEL - TEXTO COMUM DO MUNICIPIO
*------------------------------------------------------------------------------*
	
		DEFINE LABEL Label_Exportando
			ROW	580
			COL	10
			VALUE 	'Exportando:'
			WIDTH 	70
		END LABEL
  

*------------------------------------------------------------------------------*
*                    COMBOBOX - COMBOPESQ
*------------------------------------------------------------------------------*
 DEFINE COMBOBOX ComboMudaPesq
        ROW    25
        COL    20 
        WIDTH  90
        HEIGHT 100
        ITEMS aPesq
        VALUE 0
        FONTNAME "Arial"
        FONTSIZE 9
        TOOLTIP ""
        ONCHANGE MudaPesq(This.Value)
        ONGOTFOCUS Nil
        ONLOSTFOCUS Nil
        FONTBOLD .F.
        FONTITALIC .F.
        FONTUNDERLINE .F.
        FONTSTRIKEOUT .F.
        HELPID Nil
        TABSTOP .T.
        VISIBLE .T.
        SORT .F.
        ONENTER Nil
        ONDISPLAYCHANGE Nil
        DISPLAYEDIT .F.
        IMAGE Nil
        DROPPEDWIDTH 0
        ONDROPDOWN Nil
        ONCLOSEUP Nil
    END COMBOBOX
      
*------------------------------------------------------------------------------*
*                PROGRESSBAR - BARRA DE PROGRESSO DA EXPORTACAO
*------------------------------------------------------------------------------*
      
   DEFINE PROGRESSBAR BarraProgresso
        ROW    580
        COL    90
        WIDTH  1240
        HEIGHT 20
        RANGEMIN 1
        RANGEMAX 100
        VALUE 0
        TOOLTIP ""
        HELPID Nil
        VISIBLE .T.
        SMOOTH .F.
        VERTICAL .F. 
        BACKCOLOR Nil
        FORECOLOR Nil
    END PROGRESSBAR
 
*------------------------------------------------------------------------------*
*                               BARRA DE STATUS
*------------------------------------------------------------------------------*

		DEFINE STATUSBAR 
		    	STATUSITEM "" 
		END STATUSBAR


*------------------------------------------------------------------------------*
*             TEXTBOX - GET PARA INSERIR TEXTO DAS PESQUISAS
*------------------------------------------------------------------------------*

		DEFINE TEXTBOX Text_1
			ROW		25
			COL		130
			WIDTH		600
			*ONENTER		If ( Busqueda() == .T. , ( Win_1.Grid_1.Value := 1 , Win_1.Grid_1.SetFocus ) , Nil ) 
         ONENTER		(If(WIN_1.BotaoPesq.Enabled, Busqueda(),)) 
			TOOLTIP		' Digite aqui o que vai ser pesquisado conforme o Modo de Pesquisa. '
			UPPERCASE	.T.
		END TEXTBOX

*------------------------------------------------------------------------------*
*            BUTTON - BOTAO PARA INICIAR A PESQUISA
*------------------------------------------------------------------------------*

		DEFINE BUTTON BotaoPesq
			ROW	10
			COL	800
			WIDTH	140
			HEIGHT	50
			CAPTION "Pesquisar"
			ACTION If ( Busqueda() == .T. , ( Win_1.Grid_1.Value := 1 , Win_1.Grid_1.SetFocus ) , Nil )
     *   VISIBLE .F.
			TOOLTIP 'Pesquisar'
         FONTSIZE 9
         FONTBOLD .T.
         FONTITALIC .F.
         FONTUNDERLINE .F.
         FONTSTRIKEOUT .F.
 		END BUTTON
      
*------------------------------------------------------------------------------*
*            BUTTON - BOTAO PARA EXPORTAR DADOS
*------------------------------------------------------------------------------*

		DEFINE BUTTON BotaoExportar
			ROW	10
			COL	980
			WIDTH	140
			HEIGHT	50
			CAPTION "Exportar"
			ACTION If ( Exportar() == .T. , ( Win_1.Grid_1.Value := 1 , Win_1.Grid_1.SetFocus ) , Nil ) 
     *   VISIBLE .F.
			TOOLTIP 'Exportar para Excel'
		   FONTSIZE 9
         FONTBOLD .T.
         FONTITALIC .F.
         FONTUNDERLINE .F.
         FONTSTRIKEOUT .F.        
		END BUTTON     
      
*------------------------------------------------------------------------------*
*            BUTTON - ABRIR PASTA ONDE ESTÃO GRAVADOS OS ARQUIVOS
*------------------------------------------------------------------------------*

		DEFINE BUTTON BotaoPasta
			ROW	10
			COL	1160
			WIDTH	140
			HEIGHT	50
			CAPTION "Arquivos"
			ACTION Pasta()
     *   VISIBLE .F.
			TOOLTIP 'Pasta Arquivos Gravados'
         FONTSIZE 10
         FONTBOLD .T.
         FONTITALIC .F.
         FONTUNDERLINE .F.
         FONTSTRIKEOUT .F.   
		END BUTTON           
      
   
*------------------------------------------------------------------------------*
*             GRID - FORMULARIO COM OS DADOS DA PESQUISA
*------------------------------------------------------------------------------*

		DEFINE GRID Grid_1
			ROW 65
			COL 10
			WIDTH 1325			
			HEIGHT 500					
			HEADERS { 'Beneficio' , 'Nome' ,  'Municipio', 'UF', 'CPF', 'DDD', 'Telefone', 'Data Indeferimento', 'Data Nascimento' }	
			WIDTHS { 80 , 400, 300, 40, 90, 40, 100, 130, 130}			
		END GRID

	END WINDOW              // FIM DA FUNCAO FORMULÁRIO DO WINDOWS WINDOWS //
   
*------------------------------------------------------------------------------*
*                  HABILITAR E DESABILITAR OS BOTOES E MUDAR DE FOCO
*------------------------------------------------------------------------------*  

 *Public nVal
  

	Win_1.ComboMudaPesq.SetFocus                                       // POSICIONAR O MOUSE NO COMBO MUDAPESQ      //
   Win_1.StatusBar.Item(1) := ' Selecione o Modo Pesquisa clicando na Seta acima e utilize as opções: Municipio ou SIGLA - UF (AC, AL, AM, AP, BA, CE, DF, ES, GO, MA, MG, MS, MT, PA, PB, PE, PI, PR, RJ, RN, RO, RR, RS, SC, SE, SP, TO). '
   Win_1.BotaoPesq.Enabled       :=.F.                               // DESABILITA O BOTAO    PESQUISA //
   Win_1.Botaoexportar.Enabled   :=.F.                               // DESABILITA O BOTAO EXPORTAR    //
   Win_1.BotaoPasta.Enabled      :=.F.                              // DESABILITA O BOTAO DA PASTA    //
   
 *  nVal:=GetProperty("Win_1","ComboMudaPesq","Value")
   
*------------------------------------------------------------------------------*
*                    COMANDOS DO FORMULARIO DO WINDOWS
*------------------------------------------------------------------------------*   
   
   CENTER WINDOW Win_1
   ACTIVATE WINDOW Win_1
   
  
RETURN         // FIM DO PROCEDURE AdministradorDeTipos       //    


*------------------------------------------------------------------------------*
*                               FUNCAO MUDA PESQUISA
*------------------------------------------------------------------------------* 


Function MudaPesq(nVal)


Win_1.Grid_1.DeleteAllItems
Win_1.Text_1.SetFocus                                               // POSICIONAR O MOUSE NO COMBO MUDAPESQ      //
Win_1.BotaoPesq.Enabled         :=.T.                               // HABILITA O BOTAO PESQUISA                 //
Win_1.Botaoexportar.Enabled     :=.F.                               // DESABILITA O BOTAO EXPORTAR               //
Win_1.BotaoPasta.Enabled        :=.F.                               // DESABILITA O BOTAO DA PASTA               //
Win_1.Text_1.value              := ""
Win_1.StatusBar.Item(1) := ' Digite aqui o nome do Município ou a Unidade Federativa que deseja pesquisar. '

       
Return Nil

*------------------------------------------------------------------------------*
*                             FUNCAO BUSQUEDADOS
*------------------------------------------------------------------------------* 

FUNCTION Busqueda

Public RetVal := .F. , nRecCountB := 0, cIndex := "", nVal := 0
Public cProcura:=GetProperty("WIN_1","text_1","Value")     // DECLARA A VARIAVEL E GRAVA O VALOR NA VARIAVEL  //

nVal:=GetProperty("Win_1","ComboMudaPesq","Value")

dbf->( OrdSetFocus( nVal) )


	If Empty ( Win_1.Text_1.Value ) 
		Return
	EndIf

	Win_1.Grid_1.DeleteAllItems
   Win_1.StatusBar.Item(1) := ' Aguarde...... Localizando Registros... Podendo Demorar... '
   WAIT WINDOW "Aguarde..... Localizando Registros... Podendo Demorar..."  NOWAIT
 

   Do Case
    
      Case nVal = 1
      
           cIndex := "DBF->MUN"
           
      
      Case nVal = 2

           cIndex := "DBF->UF"
          
         
   Endcase
        
      
      If DbSeek(AllTrim(Win_1.Text_1.Value))

			RetVal := .T.
    

			Do While Upper(&cIndex) = AllTrim(Win_1.Text_1.Value)
				nRecCountB++
       
				Win_1.Grid_1.AddItem ( { DBF->NB , DBF->NOME, DBF->MUN, DBF->UF, DBF->CPF, DBF->DDD, DBF->TEL, DBF->DTIND, DBF->NASC } )         
            
				Skip
			EndDo
 
         WAIT CLEAR
			RetVal := .T.
			Win_1.StatusBar.Item(1) := AllTrim(Str(nRecCountB)) + ' - Registros Localizados com Sucesso !!! Para Gravar em Arquivo, Clique no Botão Exportar.'
         MsgInfo( AllTrim(Str(nRecCountB)) + ' - Registros   Localizados   com   Sucesso !!!   ' + Chr(13) +        ' Para Gravar em Arquivo, Clique no Botão Exportar.', [Registros Localizados])
         Win_1.BotaoExportar.Enabled:=.T. 
      

		Else
      
    		Win_1.StatusBar.Item(1) := ' Registros não Localizados'
         WAIT CLEAR
         MsgStop( ' R e g i s t r o s   n ã o    L o c a l i z a d o s !!! ' + Chr(13) + ; 
                  ' Faça uma nova pesquisa para localizar o que deseja.', [Registros não Localizados])
                  
         Win_1.BotaoExportar.Enabled     :=.F.
         Win_1.BotaoPasta.Enabled        :=.F.                              // DESABILITA O BOTAO DA PASTA    //
         
                  
		EndIf


Return

*------------------------------------------------------------------------------*
*                          FUNCAO EXPORTACAO
*------------------------------------------------------------------------------* 

Function Exportar()

PUBLIC nRecCountE := 0, AndProgresso := 0, PercProgresso := 0, CentoProgresso := 0
PUBLIC cPastaArq  := GetCurrentFolder() + "\ARQUIVOS", cPastaSgf := GetCurrentFolder()

Win_1.BotaoPasta.Enabled      :=.t.                              // DESABILITA O BOTAO DA PASTA    //

CentoProgresso  := nRecCountB / 100  
AndProgresso    := nRecCountB / 100


  
  Win_1.StatusBar.Item(1) := ' Aguarde...... Exportando ' + AllTrim(Str(nRecCountB)) + ' Registros para o arquivo: ' + cProcura + ".CSV"
  WAIT WINDOW "Aguarde..... Exportando " + AllTrim(Str(nRecCountB)) + ' Registros... Podendo Demorar...' NOWAIT
   
  SET DEFAULT TO "&cPastaArq"

        SET DEVICE TO PRINTER
        SET PRINTER TO (cProcura + ".CSV")	

            @ PROW()  ,000 SAY CHR(34) + "BENEFICIO"          + CHR(34) + ";" ;
                             + CHR(34) + "NOME"               + CHR(34) + ";" ;
                             + CHR(34) + "DATA NASCIMENTO"    + CHR(34) + ";" ;
                             + CHR(34) + "CPF"                + CHR(34) + ";" ;
                             + CHR(34) + "NIT"                + CHR(34) + ";" ;
                             + CHR(34) + "ESPECIE"            + CHR(34) + ";" ;
                             + CHR(34) + "DATA REQUERIMENTO"  + CHR(34) + ";" ;
                             + CHR(34) + "DESPACHO"           + CHR(34) + ";" ;
                             + CHR(34) + "AG.INSS CONECESSAO" + CHR(34) + ";" ;
                             + CHR(34) + "AG.INSS INDEFERIM." + CHR(34) + ";" ;
                             + CHR(34) + "MOTIVO INDEFERIM."  + CHR(34) + ";" ;
							        + CHR(34) + "MOTIVO INDEFERIM.2" + CHR(34) + ";" ;
                             + CHR(34) + "DATA INDEFERIM."    + CHR(34) + ";" ;
                             + CHR(34) + "ENDERECO"           + CHR(34) + ";" ;
                             + CHR(34) + "BAIRRO"             + CHR(34) + ";" ;
                             + CHR(34) + "CEP"                + CHR(34) + ";" ;
							        + CHR(34) + "MUNICIPIO"		     + CHR(34) + ";" ;
                             + CHR(34) + "UF"                 + CHR(34) + ";" ;
                             + CHR(34) + "DDD"                + CHR(34) + ";" ;
                             + CHR(34) + "TELEFONE"           + CHR(34)
            @ PROW()+1,000 SAY ""

        
If DbSeek(AllTrim(Win_1.Text_1.Value))

			Do While Upper(&cIndex) = AllTrim(Win_1.Text_1.Value)
         
            nRecCountE++
            
         IF nRecCountE > ANDPROGRESSO          
			    
             
             AndProgresso  := CENTOPROGRESSO + NRecCountE
             Win_1.BarraProgresso.value := AndProgresso / NrecCountB * 100
                      
            else
              
         ENDIF
 				      
            @ PROW()  ,000 SAY CHR(34) + NB         +   CHR(34) + ";" ;
                             + CHR(34) + NOME       +   CHR(34) + ";" ;
                             + CHR(34) + NASC       +   CHR(34) + ";" ;
                             + CHR(34) + CPF        +   CHR(34) + ";" ;
                             + CHR(34) + NIT        +   CHR(34) + ";" ;
                             + CHR(34) + ESP        +   CHR(34) + ";" ;
                             + CHR(34) + DER        +   CHR(34) + ";" ;
                             + CHR(34) + DESP       +   CHR(34) + ";" ;
                             + CHR(34) + CONC       +   CHR(34) + ";" ;
                             + CHR(34) + IND        +   CHR(34) + ";" ;
                             + CHR(34) + MOTIND     +   CHR(34) + ";" ;
                             + CHR(34) + MOTINDS    +   CHR(34) + ";" ;
                             + CHR(34) + DTIND      +   CHR(34) + ";" ;
                             + CHR(34) + END        +   CHR(34) + ";" ;
                             + CHR(34) + BAIRRO     +   CHR(34) + ";" ;
                             + CHR(34) + CEP        +   CHR(34) + ";" ;
                             + CHR(34) + MUN        +   CHR(34) + ";" ;
                             + CHR(34) + UF         +   CHR(34) + ";" ;
                             + CHR(34) + DDD        +   CHR(34) + ";" ;
                             + CHR(34) + TEL        +   CHR(34)
            @ PROW()+1,000 SAY ""
            
        	Skip
            
			EndDo
Endif
  
SET PRINTER TO
  
SET DEFAULT TO "&cPastaSgf"

  WAIT CLEAR
  Win_1.StatusBar.Item(1) := AllTrim(Str(nRecCountE)) + ' - Registros Exportados com sucesso para o arquivo: ' + cProcura + ".CSV" + ' - Para consultá-los clique no Botão "Arquivos".'
  MsgInfo( AllTrim(Str(nRecCountE)) + " - Registros Exportados com sucesso para o arquivo: " + Chr(13) + cProcura + ".CSV" + ' - Para consultá-los clique no Botão "Arquivos".', [Registros Exportados])
  Win_1.BarraProgresso.value := 0
  Win_1.Text_1.SetFocus   // POSICIONAR O MOUSE NO GET TEXT_1            //
  
  
Return

*------------------------------------------------------------------------------*
*                          FUNCAO BOTAO PASTA DE ARQUIVOS
*------------------------------------------------------------------------------* 

Function Pasta()


RUN Explorer "&cPastaArq"

Return


*------------------------------------------------------------------------------*
*                          FUNCAO REINDEXAR
*------------------------------------------------------------------------------* 

Function REINDEXAR()

CLOSE ALL
   
REQUEST DBFCDX
RDDSETDEFAULT( "DBFCDX" )
DBUSEAREA(.T.,,"SGF.dbf","dbf",,.f.)

   WAIT WINDOW "Aguarde..... Reindexando Arquivos... Podendo Demorar..."  NOWAIT 
   dbf->(OrdCreate("SGF.cdx" , "Muncipio"  , "dbf->mun"  ,{|| dbf->mun } ))
   dbf->(OrdCreate("SGF.cdx" , "UF"        , "dbf->nb"   ,{|| dbf->uf  } ))
   WAIT CLEAR
   MsgBox( "Arquivos Reindexados com Sucesso !!!" + CHR(13) + "Continue Trabalhando...", [Arquivos Reindexados] )

CLOSE ALL
   
Return

Erro de Memória Itens na Grid

Enviado: 29 Mar 2013 11:54
por guanabara
Revolvido, inseri o código abaixo para que na grid só carregasse até apenas 10 mil itens, pois a função do programa é para exportação e não edição, e para exportação independente da quantidade de registros não apresenta erro nenhum de memória pois não carrega a grid. Até a próxima...

Código: Selecionar todos

 If NrecCountB < 1000
         Win_1.Grid_1.AddItem ( { DBF->NB , DBF->NOME, DBF->MUN, DBF->UF, DBF->CPF, DBF->DDD, DBF->TEL, DBF->DTIND, DBF->NASC } )         
			Endif