Mensagem de erro no CDX
Moderador: Moderadores
-
AutomoSistema
- Usuário Nível 2

- Mensagens: 87
- Registrado em: 27 Nov 2015 22:09
- Localização: Jardim-MS
Mensagem de erro no CDX
Bom dia a Todos do Forum, estou tendo um problema no que encontra-se anexado na imagem, se alguém pude me ajudar fico agradecido
-
Kapiaba
- Colaborador

- Mensagens: 1908
- Registrado em: 07 Dez 2012 16:14
- Localização: São Paulo
- Contato:
Mensagem de erro no CDX
Código: Selecionar todos
#Include "FiveWin.Ch"
#Include "Directry.ch"
#Include "Ord.Ch"
FUNCTION ReIndPack( lPack, lIndCep, oMostraIndCep, olPack, oMeter1, ;
oMeter2, oMeter3 )
FIELD RAZ_MATRIC, DEST_NOME, END, MATRICULA, MESANO, CODIGO, ;
DESCRICAO, MARCA, EMPRESA, NOME_FUNC, NOME_CLI, PEDIDO, ;
MESA, VENDEDOR, CODUF, CIDADE, COD_SECAO, AGE_CODIGO, ;
AGE_GRUPO, CGCCLI, VENCI, NNF, COMP, OBS1
FIELD CAIXA, DAT, HORA, OPER, CODIBGE, CGC, ;
EDICAO
LOCAL I := 0, Del_Indice
LOCAL cFileMov := ""
LOCAL cMsg := "ATENÇÃO USUÁRIO: -> CHAME O SUPERVISOR IMEDIATAMENTE!!!" ;
+ CRLF +;
+ CRLF +;
"ERRO! ERRO! ERRO! ERRO! ERRO! ERRO! ERRO! ERRO! ERRO! " ;
+ CRLF +;
+ CRLF +;
"ERRO FATAL DE REDE! TOME TODO O CUIDADO POSSIVEL! " ;
+ CRLF +;
"IMPOSSIVEL CONTINUAR UTILIZANDO OS BANCOS DE DADOS! " ;
+ CRLF +;
"VOCÊ PRECISA TIRAR TODOS OS USUÁRIOS DA REDE, AGORA! " ;
+ CRLF +;
"TENTE REINDEXAR OS BANCOS SOMENTE PELO SERVIDOR! " ;
+ CRLF +;
"CASO NÃO CONSIGA REINDEXAR OS BANCOS, SAIA DO PROGRAMA " ;
+ CRLF +;
"DESLIGUE OU REINICIE O SERVIDOR, E DEPOIS, VOCÊ PODERÁ " ;
+ CRLF +;
"REINDEXAR OS BANCOS DE DADOS. ATENÇÃO MÁXIMA!!! " ;
+ CRLF +;
"VOU DESLIGAR ESTE PROGRAMA, AVISE A TODOS OS OUTROS " ;
+ CRLF +;
"USUÁRIOS, PARA SAIREM IMEDIATAMENTE DA REDE. PERIGO!!! " ;
+ CRLF +;
" "
MEMVAR oAceitar, oCancelar
PUBLIC XFANTASIA, XNOMEEMP, XDA, XVERSAO, XTIPOEMP, XARQPED, LDESLIGAINDEX
EXTERNAL DESCEND
// Desliga Botoes e CheckBox's
oAceitar:Disable()
oAceitar:Refresh()
oCancelar:Disable()
oCancelar:Refresh()
olPack:Disable()
olPack:Refresh()
oMostraIndCep:Disable()
oMostraIndCep:Refresh()
//-> Apaga os temporarios
AEVAL(DIRECTORY( "TEMP*.*" ),{ |aFILE| FERASE(aFILE[F_NAME]) } )
/*
AEVAL(DIRECTORY( "IBGE.cdx" ),{ |aFILE| FERASE(aFILE[F_NAME]) } )
*/
//-> Primeira Vez, nao o tem .cdx
IF .NOT. FILE( "CADCEP.CDX" )
lIndCep := .T.
ENDIF
//-> Ideia original By Kleyber Derick - DESTRUA OS INDICES.CDX
DEL_INDICE := DIRECTORY( "*.CDX" )
IF lIndCep = .F.
IF FILE( "CADCEP.CDX" )
AEVAL(DIRECTORY( "CADCEP.COP" ),{ |aFILE| FERASE(aFILE[F_NAME]) } )
COPYFILE( "CADCEP.CDX", "CADCEP.COP", .F. )
ENDIF
ENDIF
FOR I = 1 TO LEN( Del_Indice )
FERASE( DEL_INDICE[I][1] )
NEXT I
IF lIndCep = .F.
IF FILE( "CADCEP.COP" )
COPYFILE( "CADCEP.COP", "CADCEP.CDX", .F. )
AEVAL(DIRECTORY( "CADCEP.COP" ),{ |aFILE| FERASE(aFILE[F_NAME]) } )
ENDIF
ENDIF
// PARA VERIFICAR SE A REDE TRAVOU OS BANCOS DE DADOS... ABORTAR.
// CASO O FERASE NÇO CONSIGA DELETAR, PORQUE A REDE ESTA TRAVADA!
IF FILE( "CADETIQ.cdx" ) .OR. ;
FILE( "CADFORNE.cdx" ) .OR. ;
FILE( "ANIMAIS.cdx" ) .OR. ;
FILE( "VEICULOS.cdx" ) .OR. ;
FILE( "VENDEDOR.cdx" ) .OR. ;
FILE( XARQPED+".cdx" )
MsgStop( cMsg, "Problemas Na Rede ou no Computador, Cuidado!" )
DBCLOSEALL()
RELEASE ALL
SYSREFRESH()
__QUIT()
ENDIF
//-> INDEXACAO DO PRIMEIRO METER - AREA DOS CLIENTES
//-> AGENDA TELEFONICA
IF NetUse( "AGENDTEL", .F. )
IF lPack = .T.
MsgRun( "Apagando Registros Excluidos...", ;
"Por Favor, Espere!" , ;
{ || __DbPack() } )
ENDIF
oMeter1:nTotal = RecCount()
//oMeter1:cText := OemToAnsi( "Indexando AGENDA, Por CODIGO: " )
//oMeter1:nClrBar := CLR_HBLUE
INDEX ON VAL(AGE_CODIGO) TAG CODIGO TO AGENDTEL ;
FOR !DELETED() ;
EVAL ( oMeter1:Set( RecNo() ), CursorWait(), SysRefresh() ) ;
EVERY 10
//oMeter1:cText := OemToAnsi( "Indexando AGENDA, Por NOME: " )
//oMeter1:nClrBar := CLR_HBLUE
INDEX ON Field->AGE_NOME TAG NOME TO AGENDTEL ;
FOR !DELETED() ;
EVAL ( oMeter1:Set( RecNo() ), CursorWait(), SysRefresh() ) ;
EVERY 10
//oMeter1:cText := OemToAnsi( "Indexando AGENDA, Por APELIDO: " )
//oMeter1:nClrBar := CLR_HBLUE
INDEX ON Field->AGE_APELID TAG APELIDO TO AGENDTEL ;
FOR !DELETED() ;
EVAL ( oMeter1:Set( RecNo() ), CursorWait(), SysRefresh() ) ;
EVERY 10
//oMeter1:cText := OemToAnsi( "Indexando AGENDA, Por GRUPO: " )
//oMeter1:nClrBar := CLR_HBLUE
INDEX ON VAL(AGE_GRUPO) TAG GRUPO TO AGENDTEL ;
FOR !DELETED() ;
EVAL ( oMeter1:Set( RecNo() ), CursorWait(), SysRefresh() ) ;
EVERY 10
DbCloseAll()
ENDIF
//-> GRUPOS DA AGENDA TELEFONICA
IF NetUse( "AGENDGRP", .F. )
IF lPack = .T.
MsgRun( "Apagando Registros Excluidos...", ;
"Por Favor, Espere!" , ;
{ || __DbPack() } )
ENDIF
oMeter1:nTotal = RecCount()
//oMeter1:cText := OemToAnsi( "Indexando AGENDAGRP, Por CODIGO: " )
//oMeter1:nClrBar := CLR_HBLUE
INDEX ON Field->GTE_CODIGO TAG CODIGO TO AGENDGRP ;
FOR !DELETED() ;
EVAL ( oMeter1:Set( RecNo() ), CursorWait(), SysRefresh() ) ;
EVERY 10
//oMeter1:cText := OemToAnsi( "Indexando AGENDAGRP, Por NOME: " )
//oMeter1:nClrBar := CLR_HBLUE
INDEX ON Field->GTE_NOME TAG NOME TO AGENDGRP ;
FOR !DELETED() ;
EVAL ( oMeter1:Set( RecNo() ), CursorWait(), SysRefresh() ) ;
EVERY 10
DbCloseAll()
ENDIF
//-> CADASTRO DE CONVENIOS
IF NetUse( "CONVENIO", .F. )
IF lPack = .T.
MsgRun( "Apagando Registros Excluidos...", ;
"Por Favor, Espere!" , ;
{ || __DbPack() } )
ENDIF
oMeter1:nTotal = RecCount()
//oMeter1:cText := OemToAnsi( "Indexando CONVENIO, Por CODIGO: " )
//oMeter1:nClrBar := CLR_HBLUE
INDEX ON VAL(Field->CODIGO) TAG CODIGO TO CONVENIO ;
FOR !DELETED() ;
EVAL ( oMeter1:Set( RecNo() ), CursorWait(), SysRefresh() ) ;
EVERY 10
//oMeter1:cText := OemToAnsi( "Indexando CONVENIO, Por NOME: " )
//oMeter1:nClrBar := CLR_HBLUE
INDEX ON Field->NOME TAG NOME TO CONVENIO ;
FOR !DELETED() ;
EVAL ( oMeter1:Set( RecNo() ), CursorWait(), SysRefresh() ) ;
EVERY 10
DbCloseAll()
ENDIF
//-> CADASTRO DE CONVENIADOS
IF NetUse( "CONVENIA", .F. )
IF lPack = .T.
MsgRun( "Apagando Registros Excluidos...", ;
"Por Favor, Espere!" , ;
{ || __DbPack() } )
ENDIF
oMeter1:nTotal = RecCount()
INDEX ON VAL(Field->CODIGO) TAG CODIGO TO CONVENIA ;
FOR !DELETED() ;
EVAL ( oMeter1:Set( RecNo() ), CursorWait(), SysRefresh() ) ;
EVERY 10
INDEX ON Field->NOME TAG NOME TO CONVENIA ;
FOR !DELETED() ;
EVAL ( oMeter1:Set( RecNo() ), CursorWait(), SysRefresh() ) ;
EVERY 10
DbCloseAll()
ENDIF
//-> CADASTRO DE TIPOS DA LOCADORA
IF NetUse( "TIPOLOCA", .F. )
IF lPack = .T.
MsgRun( "Apagando Registros Excluidos...", ;
"Por Favor, Espere!" , ;
{ || __DbPack() } )
ENDIF
oMeter1:nTotal = RecCount()
//oMeter1:cText := OemToAnsi( "Indexando TIPO, Por CODIGO: " )
//oMeter1:nClrBar := CLR_HBLUE
INDEX ON VAL(Field->TIP_CODIGO) TAG CODIGO TO TIPOLOCA ;
FOR !DELETED() ;
EVAL ( oMeter1:Set( RecNo() ), CursorWait(), SysRefresh() ) ;
EVERY 10
//oMeter1:cText := OemToAnsi( "Indexando TIPO, Por DESCRIۂO: " )
//oMeter1:nClrBar := CLR_HBLUE
INDEX ON Field->TIP_DESCRI TAG DESCRI TO TIPOLOCA ;
FOR !DELETED() ;
EVAL ( oMeter1:Set( RecNo() ), CursorWait(), SysRefresh() ) ;
EVERY 10
DbCloseAll()
ENDIF
IF NetUse( "SETORES", .F. )
IF lPack = .T.
MsgRun( "Apagando Registros Excluidos...", ;
"Por Favor, Espere!" , ;
{ || __DbPack() } )
ENDIF
oMeter1:nTotal = RecCount()
//oMeter1:cText := OemToAnsi( "Indexando SETORES, Por CODIGO: " )
//oMeter1:nClrBar := CLR_HBLUE
INDEX ON VAL(Field->SET_CODIGO) TAG SET_CODIGO TO SETORES ;
FOR !DELETED() ;
EVAL ( oMeter1:Set( RecNo() ), CursorWait(), SysRefresh() ) ;
EVERY 10
//oMeter1:cText := OemToAnsi( "Indexando SETORES, Por DESCRIۂO: " )
//oMeter1:nClrBar := CLR_HBLUE
INDEX ON Field->SET_DESCRI TAG SET_DESCRI TO SETORES ;
FOR !DELETED() ;
EVAL ( oMeter1:Set( RecNo() ), CursorWait(), SysRefresh() ) ;
EVERY 10
DbCloseAll()
ENDIF
// CADASTRO DAS RETIRADA - SANGRIA DO CAIXA
IF NetUse( "SANGRIA", .F. )
IF lPack = .T.
MsgRun( "Apagando Registros Excluidos...", ;
"Por Favor, Espere!" , ;
{ || __DbPack() } )
ENDIF
oMeter1:nTotal = RecCount()
//oMeter1:cText := OemToAnsi( "Indexando SANGRIA, Por HORA: " )
//oMeter1:nClrBar := CLR_HRED
INDEX ON STR(CAIXA,2,0)+DTOC(DAT)+HORA TAG CAIXA TO SANGRIA ;
FOR !DELETED() ;
EVAL ( oMeter1:Set( RecNo() ), CursorWait(), SysRefresh() ) ;
EVERY 10
//oMeter1:cText := OemToAnsi( "Indexando SANGRIA, Por OPERADOR: " )
//oMeter1:nClrBar := CLR_CYAN
INDEX ON LEFT(OPER,2)+DTOC(DAT)+HORA TAG OPERADOR TO SANGRIA ;
FOR !DELETED() ;
EVAL ( oMeter1:Set( RecNo() ), CursorWait(), SysRefresh() ) ;
EVERY 10
//oMeter1:cText := OemToAnsi( "Indexando SANGRIA, Por CAIXA: " )
//oMeter1:nClrBar := CLR_HBLUE
INDEX ON STR(CAIXA,3)+OPER+DTOC(DAT) TAG NCAIXA TO SANGRIA ;
FOR !DELETED() ;
EVAL ( oMeter1:Set( RecNo() ), CursorWait(), SysRefresh() ) ;
EVERY 10
DbCloseAll()
ENDIF
lDesligaIndex := .T.
lSaida := .T.
RETURN NIL
//OrdSkipUnique() // Ver o M¢dulo DBFCDX.PRG (Manual) Esta no \Fivewin
/*
CRIACAO DE INDICES CDX
Em principio existem 3 Fun‡äes para construir Indices:
OrdConSet(), OrdCriate() e DbCriateIndex(), Porem nao se recomenda Trabalhar
directamente com elas.
Pelo contrario, Usaremos INDEX ON ( que no fundo se transforma em Fun‡äes por
Meio do pre-processador - /P ) por sua claridade e flexibilidade.
Analizemos Abaixo:
INDEX ON ;
TAG TO ;
FOR ;
WHILE ;
NEXT | RECORD | REST | ALL ;
UNIQUE ;
ASCENDING | DESCENDING ;
EVAL EVERY ;
USECURRENT ;
ADDITIVE ;
CUSTOM ;
NOOPTIMIZE
Maiores detalhes, no meu manual DBFCDX.PRG em Meu diretorio principal
*/