Jump to content
Fivewin Brasil

gravação erronea em dbf


nardeypm

Recommended Posts

não sei o que pode estar acontecendo,. já verifiquei as linhas de comando e não encontrei erro, até porque o sistema funciona normalmente. trata-se de um sistema de alunos. faço o cadastro do aluno normalmente. aí vou para fazer a matricula dele em uma determinada turma, horario, dias de aula, vl do curso, parcelas, vl parcelas, etc etc etc.  passado algum tempo, aparece um registro de determinado aluno com dados em branco ou com dados de outro aluno. isso está me preocupando, pois, de repente determinado aluno que pagou, passa a ficar devendo e vice versa, ou mesmo os dados ficam em branco. já aconteceu por 3 oportunidades.

banco de dados dbf.        Alguma sugestão de como verificar e sanar tal erro?? 

Link to comment
Share on other sites

Bobkolho1, boa noite.

 

Já passei por problemas, assim, na empresa do cliente a rede tinha 32 estações e 2 servidores.

Depois de muito tempo, detectei que havia uma placa de rede que estava causando problemas, pois, sempre que aquele usuário fazia alguma gravação/atualização no banco, o sistema dava "pau" nos "indices". Daí tinha que para o financeiro e realizar nova indexação. Daí optei por trocar a placa de rede por conta própria e desativar a LAN on-board, nunca mais tive este tipo de problema. Há também casos de cabeamento ruim, placa de rede(principalmente on-board) e até porta de switch queimando. Um técnico disse-me que o Switch queima de 4 e 4 portas e não uma só.

 

Espero ter ajudado.

Link to comment
Share on other sites

uso indices cdx. a rotina é essa:

 

FUNCTION EditRem( oLbx, lAppend )

   local oDlg, oBt1, oBt2, lSave := .f., lSave2 := .f., nOldRec := RecNo(), nLimt, Old44, oDlg1
   LOCAL oH01, oH02, oH03, oH04, oH05, oH06, oH07, oH08, oH09, oH10,;
         oH11, oH12, oH13, oH14, oH15, oH16, oH17, oH18, oH19, oH20,;
         oH21, oH22, oH23, oH24, oH25, oH26, oH27, oH28, oH29,;
         owcontr, owdt_matr, owestag, owdia1, owdia2, lOk := .T.
 
   SELECT 5   # banco alunos
   DbSetOrder(1)
   IF lAppend
      wcontr    := SACAD->controle+1
      wn_cli    := SACAD->N_CLI
      nOldc     := SACAD->N_CLI
      wnome     := SACAD->NOME
      wdt_s     := SACAD->DT_SAIDA
      wmatr     := wn_cli
      wdt_saida := SACAD->DT_SAIDA
      wdt_nasc  := SACAD->dt_nasc
      westag    := space(10)
      wnota_mid := wnota_fine := wnota_oral := 0
      whora1 := whora2 := SPACE(5)
      wvl_p1 := wvl_p2 := wvl_p3 := wvl_p4 := wvl_p5 := wvl_p6 := wdesc := 0
      wdt_matr := wdt_v1 := date()
      wdt_v2 := wdt_v3 := wdt_v4 := wdt_v5 := wdt_v6 := SPACE(10)
      wdt_p1 := wdt_p2 := wdt_p3 := wdt_p4 := wdt_p5 := wdt_p6 := SPACE(10)
      wmedia := wfaltas := wqtep := 0
      wvl_estag := wturma := 0 
      wdia1  := wdia2 := SPACE(7)
      wpgto := SPACE(7)
      wdoc_pgto := space(20)
      wcarne := .f.
   ELSE
      wmatr     := wn_cli := SACAD->n_cli
      wcontr    := SACAD->controle
      wnome:=SACAD->NOME
      wdt_s:=SACAD->DT_SAIDA
      wdt_nasc:=SACAD->dt_nasc
      nOldc     :=SACAD->N_CLI
 
      SELECT 7  # banco de notas e mensalidades dos alunos
      SANOTA->(DBSETORDER(4))
      SANOTA->(DBGOTOP())
      seek str(wmatr,6)+str(wcontr,3)
      if !FOUND()
         MsgAlert("Matricula e/ou Controle não encontrado","Atencao")
         RETURN
      ELSE
         nOldRec := RecNo()
         wdt_matr:= SANOTA->dt_matr
         westag  := SANOTA->estagio
         westag_ant:= SANOTA->estagio
         wturma  := SANOTA->turma
         wdia1   := SANOTA->dia_sem1
         wdia2   := SANOTA->dia_sem2
         whora1  := SANOTA->hora1
         whora2  := SANOTA->hora2
         wliv    := SANOTA->livro
         wpgto   := SANOTA->tipo_pg
         wdesc   := SANOTA->desconto
         wnota_mid := SANOTA->nota_mid
         wnota_fine := SANOTA->nota_fine
         wnota_oral := SANOTA->nota_oral
         wvl_p1 := SANOTA->VL_RECEB1
         wvl_p2 := SANOTA->VL_RECEB2
         wvl_p3 := SANOTA->VL_RECEB3
         wvl_p4 := SANOTA->VL_RECEB4
         wvl_p5 := SANOTA->VL_RECEB5
         wvl_p6 := SANOTA->VL_RECEB6
         wdt_v1 := SANOTA->dt_venc1
         wdt_v2 := SANOTA->dt_venc2
         wdt_v3 := SANOTA->dt_venc3
         wdt_v4 := SANOTA->dt_venc4
         wdt_v5 := SANOTA->dt_venc5
         wdt_v6 := SANOTA->dt_venc6
         wdt_p1 := SANOTA->DT_PG1
         wdt_p2 := SANOTA->DT_PG2
         wdt_p3 := SANOTA->DT_PG3
         wdt_p4 := SANOTA->DT_PG4
         wdt_p5 := SANOTA->DT_PG5
         wdt_p6 := SANOTA->DT_PG6
         wmedia := SANOTA->media
         wfaltas:= SANOTA->faltas
         wvl_estag := SANOTA->vl_curso
         wqtep := SANOTA->qte_parc
         wdoc_pgto := space(20)
      endif
   ENDIF
   IF !EMPTY(DT_SAIDA)
      MsgAlert("Aluno está cadastrado como DESISTENTE - DATA DA SAIDA --> "+DTOC(DT_SAIDA),OemToAnsi("Aten‡Æo!"))
      RETURN
   ENDIF
 
   DEFINE DIALOG oDlg1 RESOURCE "CONTROLE" TITLE If( lAppend, "Rematricula do Aluno", "Alteração da Rematricula do Aluno" )
   REDEFINE SAY oSay      VAR wn_cli     ID 33 OF oDlg1 PICTURE "999999" font ofon1
   REDEFINE SAY oSay      VAR wnome      ID 34 OF oDlg1 PICTURE "@!" font ofon1
   REDEFINE GET oH80      VAR wdt_matr   ID 35 OF oDlg1 PICTURE "@K,@D 99/99/9999" font ofon1
   REDEFINE GET oH81      VAR wcontr     ID 36 OF oDlg1 PICTURE "@!" VALID ChkNomCtr(wcontr)
   Redefine Button obtn[1] Prompt "Estagio" ID 70 Of oDlg1 Action NomeEstRem(oH82)
   REDEFINE GET oH82      var westag     ID 37 OF oDlg1 PICTURE "@!" VALID ChkNomEst2(westag)
   REDEFINE GET oH83      var wturma     ID 38 OF oDlg1 PICTURE "999"
   REDEFINE COMBOBOX oH84 VAR wdia1 ITEMS {"SEGUNDA","TERÇA","QUARTA","QUINTA","SEXTA","SÃBADO"} ID 39 OF oDlg1 UPDATE
   REDEFINE COMBOBOX oH85 VAR wdia2 ITEMS {"SEGUNDA","TERÇA","QUARTA","QUINTA","SEXTA","SÃBADO"} ID 40 OF oDlg1 UPDATE
   REDEFINE GET oH86      VAR whora1     ID 41 OF oDlg1 PICTURE "99:99"
   REDEFINE GET oH87      var whora2     ID 42 OF oDlg1 PICTURE "99:99"
   REDEFINE GET oH88      VAR wnota_mid  ID 43 OF oDlg1 PICTURE "999.99" UPDATE
   REDEFINE GET oH89      VAR wnota_fine ID 44 OF oDlg1 PICTURE "999.99" UPDATE
   REDEFINE GET oH90      var wnota_oral ID 45 OF oDlg1 PICTURE "999.99" VALID ((wmedia:=((wnota_oral*2)+wnota_mid+wnota_fine)/4), oH91:Refresh(),.t.) UPDATE
   REDEFINE GET oH91      var wmedia     ID 46 OF oDlg1 PICTURE "999.99" UPDATE
 
   IF lAppend
      REDEFINE COMBOBOX oCbx VAR wpgto ITEMS { "A VISTA", "A PRAZO", "BOLETO", "BOLSA" } ID 47 OF oDlg1 ON CHANGE VER_PARCELAS( oCbx ) valid !empty(wpgto)
      oCbx:refresh()
      REDEFINE BUTTON oBt1 ID 30 OF oDlg1 ACTION ( lSave2 := .t. , oDlg1:End()) WHEN (!EMPTY(wpgto)) 
      REDEFINE BUTTON oBt3 ID 31 OF oDlg1 ACTION ( lSave2 := .F. , oDlg1:End()) WHEN (EMPTY(wpgto))
   ELSE
      REDEFINE COMBOBOX oCbx VAR wpgto ITEMS { "A VISTA", "A PRAZO", "BOLETO", "BOLSA" } ID 47 OF oDlg1
      oCbx:refresh()
      REDEFINE BUTTON oBt1 ID 30 OF oDlg1 ACTION ( lSave2 := .t. , oDlg1:End()) 
      REDEFINE BUTTON oBt3 ID 31 OF oDlg1 ACTION ( lSave2 := .F. , oDlg1:End())
   ENDIF
   ACTIVATE DIALOG oDlg1 CENTERED
 
   IF lsave2
      SELECT 7
      IF lAppend
         SANOTA->(DBSETORDER(2))
         WHIL ! SANOTA->(RLOCK()) ; END
         SANOTA->(DBAPPEND())
      ELSE
         go nOldRec
      ENDIF
      SANOTA->(DBSETORDER(0))
      REPLACE SANOTA->MATRIC    WITH wmatr
      REPLACE SANOTA->NOME      WITH wnome
      REPLACE SANOTA->DT_MATR   WITH wdt_matr
      REPLACE SANOTA->CONTROLE  WITH wcontr
      REPLACE SANOTA->ESTAGIO   WITH westag
      REPLACE SANOTA->TURMA     WITH wturma
      REPLACE SANOTA->FALTAS    WITH wfaltas
      REPLACE SANOTA->DIA_SEM1  WITH wdia1
      REPLACE SANOTA->DIA_SEM2  WITH wdia2
      REPLACE SANOTA->HORA1     WITH whora1
      REPLACE SANOTA->HORA2     WITH whora2
      REPLACE SANOTA->NOTA_MID  WITH wnota_mid
      REPLACE SANOTA->NOTA_FINE WITH wnota_fine
      REPLACE SANOTA->NOTA_ORAL WITH wnota_oral
      REPLACE SANOTA->MEDIA     WITH wmedia
      REPLACE SANOTA->LIVRO     WITH "N"
      IF EMPTY(wnota_mid) .AND. EMPTY(wnota_fine) .AND. EMPTY(wnota_oral)
         REPLACE SANOTA->OBS       WITH SPACE(15)
      ELSE
         REPLACE SANOTA->OBS       WITH IIF(wmedia >= 69,"APROVADO","REPROVADO")
      ENDIF
 
   IF lAppend
      REPLACE SANOTA->DT_VENC1  WITH wdt_v1
      REPLACE SANOTA->DT_VENC2  WITH wdt_v2
      REPLACE SANOTA->DT_VENC3  WITH wdt_v3
      REPLACE SANOTA->DT_VENC4  WITH wdt_v4
      REPLACE SANOTA->DT_VENC5  WITH wdt_v5
      REPLACE SANOTA->DT_VENC6  WITH wdt_v6
      REPLACE SANOTA->DT_PG1    WITH wdt_p1
      REPLACE SANOTA->DT_PG2    WITH wdt_p2
      REPLACE SANOTA->DT_PG3    WITH wdt_p3
      REPLACE SANOTA->DT_PG4    WITH wdt_p4
      REPLACE SANOTA->DT_PG5    WITH wdt_p5
      REPLACE SANOTA->DT_PG6    WITH wdt_p6
      REPLACE SANOTA->TIPO_PG   WITH wpgto
      REPLACE SANOTA->QTE_PARC  WITH wqtep
      REPLACE SANOTA->DESCONTO  WITH wdesc
      REPLACE SANOTA->VL_CURSO  WITH wvl_estag
      REPLACE SANOTA->DT_DIGIT  WITH date()
      REPLACE SANOTA->DT_SAIDA  WITH wdt_s
 
      IF wpgto="A VISTA"
         *-----------  A matricula e a primeira mensalidade. ---------*
         REPLACE SANOTA->DT_RECEB1 WITH wdt_v1
         REPLACE SANOTA->VL_RECEB1 WITH wvl_p1
         *------------------------------------------------------------*
      ENDIF
 
      REPLACE SANOTA->VL_PARC1  WITH wVL_p1
      REPLACE SANOTA->VL_PARC2  WITH wVL_p2
      REPLACE SANOTA->VL_PARC3  WITH wVL_p3
      REPLACE SANOTA->VL_PARC4  WITH wVL_p4
      REPLACE SANOTA->VL_PARC5  WITH wVL_p5
      REPLACE SANOTA->VL_PARC6  WITH wVL_p6
   ENDIF
 
      SANOTA->(DBSETORDER(1))
      dbunlock()
      DbCommit()
      SysRefresh()
      IF lAppend
         LOGReg(nOper,cOper,"CADASTROU A REMATRICULA E MENSALIDADES DO ALUNO "+ALLTRIM(STR(wn_cli))+"-"+wnome, WVL_ESTAG, "SANOTA", wn_cli)
      ELSE
         LOGReg(nOper,cOper,"ALTEROU A REMATRICULA E MENSALIDADES DO ALUNO "+ALLTRIM(STR(wn_cli))+"-"+wnome, WVL_ESTAG, "SANOTA", wn_cli)
      ENDIF
 
      IF lAppend .AND. wpgto="A VISTA"
         SELECT 10   # banco do movimento de caixa/receitas/despesas 
         SACPMOV->(DBSETORDER(1))
         WHIL ! SACPMOV->(RLOCK()) ; END
         SACPMOV->(DBGOBOTTOM())
         SACPMOV->(DBAPPEND())
         SACPMOV->(DBSETORDER(0))
         REPLACE SACPMOV->N_DOC     WITH "M"+ltrim(str(wmatr,6))+ltrim(str(wcontr,3))+"1"
         REPLACE SACPMOV->DT_VENC   WITH wdt_v1,tipo with "C"
         REPLACE SACPMOV->VALOR     WITH wvl_p1
         REPLACE SACPMOV->PARCELA   WITH 1
         REPLACE SACPMOV->DT_PGTO   WITH wdt_v1
         REPLACE SACPMOV->VL_PG_REC WITH wvl_p1
         REPLACE SACPMOV->DOC_PGTO  WITH wdoc_pgto
         REPLACE SACPMOV->DESCRI    WITH "MENS. DE "+wnome+"-"+westag
         SACPMOV->(DBSETORDER(1))
         dbunlock()
         DbCommit()
         SysRefresh()
         LOGReg(nOper,cOper,"CADASTROU O RECEBIMENTO DA 1ª PARCELA "+ALLTRIM(STR(wn_cli))+"-"+wnome, WVL_P1, "SACPMOV", wn_cli)
      ELSE
         LOGReg(nOper,cOper,"CADASTROU O RECEBIMENTO DA 1ª PARCELA "+ALLTRIM(STR(wn_cli))+"-"+wnome, WVL_P1, "SACPMOV", wn_cli)
      ENDIF
 
      SELECT 5
      SACAD->(DBSETORDER(1))
      SACAD->(DBGOTOP())
      SEEK wmatr
      WHIL ! SACAD->(RLOCK()) ; END
      SACAD->(DBSETORDER(0))
      REPLACE SACAD->DT_MATR   WITH wdt_matr
      REPLACE SACAD->ESTAGIO   WITH westag
      REPLACE SACAD->TIPO_PG   WITH wpgto
      REPLACE SACAD->CONTROLE  WITH wcontr
      SACAD->(DBSETORDER(1))
      dbunlock()
      DbCommit()
      SysRefresh()
 
      IF lAppend .AND. (wpgto="A VISTA")
          *--------impressão do recibo---------------------------------
      ENDIF
   else
      Select 5
    ENDIF
   IF oLbx <> NIL
      oLbx:UpStable()
      oLbx:Refresh()
   ENDIF
   oDlg1:Refresh()
RETURN(lSave)
//----------------------------------------------------------------------------//
static function ver_parcelas( oCbx )
   // ITEMS { "A VISTA", "A PRAZO", "BOLETO", "BOLSA" }
   IF ( oCbx:nAt )     = 1  // Primeira opcao do combo
      wdt_v2 := wdt_v3 := wdt_v4 := wdt_v5 := wdt_v6 := CTOD(SPACE(10))
      wvl_p2 := wvl_p3 := wvl_p4 := wvl_p5 := wvl_p6 := 0
      wdt_p1=wdt_v1
      wdt_p2 := wdt_p3 := wdt_p4 := wdt_p5 := wdt_p6 := CTOD(SPACE(10))
      DEFINE DIALOG oDlg2 RESOURCE "AVISTA"
      REDEFINE SAY oSay VAR  wvl_estag  ID 37 OF oDlg2 PICTURE "@E 999,999.99"
      REDEFINE GET oH30 var  wdesc      ID 33 OF oDlg2 PICTURE "99.99" VALID (wvl_p1:=(wvl_estag-(wvl_estag*wdesc)/100), oH31:Refresh(),.t.) UPDATE
      REDEFINE SAY oSay VAR  wdt_v1     ID 34 OF oDlg2 PICTURE "@K,@D 99/99/9999"
      REDEFINE GET oH31 VAR  wvl_p1     ID 35 OF oDlg2 PICTURE "999,999.99" UPDATE
      REDEFINE GET oH32 VAR  wdoc_pgto  ID 36 OF oDlg2 PICTURE "@!" UPDATE
      REDEFINE BUTTON oBt4 ID 30 OF oDlg2 ACTION ( lSave2 := .t. , oDlg2:End()) WHEN ( !EMPTY(WDT_V1) .AND. !EMPTY(WDOC_PGTO))
      REDEFINE BUTTON oBt5 ID 31 OF oDlg2 ACTION ( lSave2 := .F. , oDlg2:End())
      ACTIVATE DIALOG oDlg2
 
   ELSEIF ( oCbx:nAt ) = 2 // Segunda  opcao do combo
      DEFINE DIALOG oDlg2 RESOURCE "PARCELADO"
      REDEFINE SAY oSay      VAR  wvl_estag    ID 65 OF oDlg2 PICTURE "@E 999,999.99"
      REDEFINE GET oH40      var wqtep      ID 48 OF oDlg2 PICTURE "99" VALID CONDICAO()
      oDlg2:Refresh()
      REDEFINE GET oH41      var wdesc      ID 49 OF oDlg2 PICTURE "99.99" UPDATE
         REDEFINE GET oH42      VAR wdt_v1     ID 50 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE
         REDEFINE GET oH43      VAR wdt_v2     ID 51 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE
         REDEFINE GET oH44      VAR wdt_v3     ID 52 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE
         REDEFINE GET oH45      VAR wdt_v4     ID 53 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE
         REDEFINE GET oH46      VAR wdt_v5     ID 54 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE
         REDEFINE GET oH47      VAR wdt_v6     ID 55 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE
         REDEFINE GET oH48      VAR wdt_p2     ID 56 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE 
         REDEFINE GET oH49      VAR wdt_p3     ID 57 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE
         REDEFINE GET oH50      VAR wdt_p4     ID 58 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE
         REDEFINE GET oH51      VAR wdt_p5     ID 59 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE
         REDEFINE GET oH52      VAR wdt_p6     ID 60 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE
      REDEFINE BUTTON oBt4  ID 30 OF oDlg2 ACTION ( lSave2 := .t., oDlg2:End()) WHEN !EMPTY(WDT_V1)
      REDEFINE BUTTON oBt5 ID 31 OF oDlg2 ACTION ( lSave2 := .F. , oDlg2:End())
      ACTIVATE DIALOG oDlg2
 
   ELSEIF ( oCbx:nAt ) = 3 // Terceira opcao do combo
      DEFINE DIALOG oDlg2 RESOURCE "PARCELADO"
      REDEFINE SAY oSay      VAR  wvl_estag    ID 65 OF oDlg2 PICTURE "@E 999,999.99"
      REDEFINE GET oH60      var wqtep      ID 48 OF oDlg2 PICTURE "99" VALID CONDICAO()
      oDlg2:Refresh()
      REDEFINE GET oH61      var wdesc      ID 49 OF oDlg2 PICTURE "99.99" UPDATE
      REDEFINE GET oH62      VAR wdt_v1     ID 50 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE
      REDEFINE GET oH63      VAR wdt_v2     ID 51 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE
      REDEFINE GET oH64      VAR wdt_v3     ID 52 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE
      REDEFINE GET oH65      VAR wdt_v4     ID 53 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE
      REDEFINE GET oH66      VAR wdt_v5     ID 54 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE
      REDEFINE GET oH67      VAR wdt_v6     ID 55 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE
      REDEFINE GET oH68      VAR wdt_p2     ID 56 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE 
      REDEFINE GET oH69      VAR wdt_p3     ID 57 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE
      REDEFINE GET oH70      VAR wdt_p4     ID 58 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE
      REDEFINE GET oH71      VAR wdt_p5     ID 59 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE
      REDEFINE GET oH72      VAR wdt_p6     ID 60 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE
      REDEFINE BUTTON oBt4  ID 30 OF oDlg2 ACTION ( lSave2 := .t., oDlg2:End()) WHEN !EMPTY(WDT_V1)
      REDEFINE BUTTON oBt5 ID 31 OF oDlg2 ACTION ( lSave2 := .F. , oDlg2:End())
      ACTIVATE DIALOG oDlg2
 
   ELSEIF ( oCbx:nAt ) = 4 // Quarta   opcao do combo
      wdt_v1 := wdt_v2 := wdt_v3 := wdt_v4 := wdt_v5 := wdt_v6 := CTOD(SPACE(10))
      wvl_p1 := wvl_p2 := wvl_p3 := wvl_p4 := wvl_p5 := wvl_p6 := 0
      wdt_p1 := wdt_p2 := wdt_p3 := wdt_p4 := wdt_p5 := wdt_p6 := CTOD(SPACE(10))
      wvl_estag := wdesc := 0 
      wdoc_pgto := space(20)
   ENDIF
RETURN( .T. )
// ------------------------------------------------------------------------
FUNCTION ChkNomCtr(wcontr)
  SET ORDER TO 4
  SEEK wcontr
  IF FOUND()
     MsgStop(OemToAnsi("Este Controle j  est  cadastrado. Verifique antes de prosseguir!"),OemToAnsi("Aten‡Æo!"))
     SET ORDER TO 2
     RETURN .T.
  ENDIF
  SET ORDER TO 2
RETURN (!EMPTY(wcontr))
// ------------------------------------------------------------------------
Function NomeEstRem(oH82)
LOCAL oSelect := SELECT()
Select 8
SAESTA->(DBSETORDER(1))
SAESTA->(DBGOTOP())
Define Dialog oDlg1 Resource "buscar_2" title "..::Nome do Estagio"
REDEFINE Get oGet Var cBusca Picture "@!" ID 104 Of oDlg1 ON CHANGE ( oLbx:Refresh(), Buscar( nKey, oGet ) )
Redefine ListBox olbx Fields SAESTA->ESTAGIO,Trans(SAESTA->VALOR_CUR,"@E 999,999.99");
    Header "ESTAGIO","VALOR DO CURSO" ID 101 of odlg1 FONT oGetFnt;
    ON DBLCLICK  Sele_EstRem(oH82)
    oLbx:nClrBackHead  := RGB(   0,   0, 255 )         // Cor do Fundo do Cabe‡alho
    oLbx:nClrBackFocus := RGB( 040, 004, 090 )   // Cor do Cursor Em Cima do Ötem
    oLbx:nClrForeHead  := RGB( 255, 255, 235 )   // Cor nos Headers - Cabe‡alhos
 %3
Link to comment
Share on other sites

Estou passando por um problema em um cliente semelhante, e ainda pelo sumiço de registros. No fórum antigo, teve uma vasta discussão sobre este assunto, tentei achá-lo pela pesquisa do google porque já achei outras vezes mas não consegui.

 

Se o administrador dispuser do link deste tópico antigo, poderia até ajudar nosso amigo ai

 

 

FWH 8.1/ xHB 1.1.0 / Pelles / xDev

Link to comment
Share on other sites

Bom dia!

Isto já me aconteceu várias vezes, a causa sempre foi problemas na rede, os dados truncam por problemas físicos mesmo, a solução é resolver os problemas físicos (placa, cabo, micros, etc) que ocorreram e gerar os arquivos DBF novamente. Eu costumo renomear o dbf que deu problema, criar um novo com dbcreate mesmo e fazer um append from do DBF antigo. Depois disto o DBF fica estavel novamente. Quando não gero os arquivos o sistema volta mas dentro de pouco tempo começa novamente a truncar os registros.

Link to comment
Share on other sites

Concordo com vcs. já tive problemas relacionados aos .DBT bem como os .FTP ambos arquivos de memo.

 

Não fiz nenhuma modificação nos fontes, mas fiz uma revisão na Rede, Placa etc. bem como o Servidor que

era uma máquina (Win XP) que também operava como terminal, passei a utilizar um servidor Linux. Não é por ser

Linux e sim o fato da exclusividade do serviço.

 

Nestes dois últimos anos não tenho nenhuma reclamação desse tipo.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...