Page 1 of 1

Campos memo

Posted: Fri Aug 25, 2006 7:09 pm
by Jorge Jaurena
Hola a todos.

Tengo una dbf con _ memo y de vez en cuando aparecen _ de un memo a otro, creo que esta roto el archivo dbt, pero como repararlo sin perder datos, el viejo filefix de norton anda muy bien con las dbf pero no asi con los dbt.
Probe pasar los datos a un archivo igual pero vacio, y sin embargo el problema persiste.
Si alguien sabe como salir de esto, muy agradecido.

Saludos
Jorge Jaurena

Posted: Fri Aug 25, 2006 8:58 pm
by Antonio Linares
Jorge,

Que build de Harbour ó xHarbour estás usando ? De que fecha ?

Posted: Sat Aug 26, 2006 10:18 pm
by Jorge Jaurena
Estoy usando Harbour 41.0 el copyright dice 1999-2002.

Posted: Sun Aug 27, 2006 11:22 am
by Antonio Linares
Jorge,

Como ves, es bastante antiguo y se han modificado mucho los RDDs desde entonces.

Actualízate a un build más reciente. En la sección whatsnew de estos foros tienes builds recientes que puedes descargar.

Posted: Wed Aug 22, 2007 12:25 pm
by jrestojeda
Antonio:

Estamos utilizando la versión FWH/FWHX 7.01 January/2007 y aún así seguimos teniendo problemas con _ memos, es decir, en reiteradas oportunidades cuando grabamos un memo en un registro aparece en otro, y estamos compilando con el Harbour que viene en esa versión.
Ya hay alguna solución respecto a este tema?
Ya que tenemos problemas con muchos de nuestros clientes que utilizan nuestros sistemas.
El problema persiste ya sea utilizando el RDD de ADS como sin utilizarlo.
Desde ya muchas gracias.
Saludos Esteban

Posted: Wed Aug 22, 2007 12:59 pm
by Antonio Linares
Jorge,

Es preciso que construyais un ejemplo pequeño y autocontenido que reproduzca el problema, sin usar FWH, para que podamos reportarlo en la lista de desarrollo de Harbour y lo revisen

Es extraño puesto que nadie más ha reportado problemas con _ memo, y más aún si habeis probado con ADS, pero no por eso es imposible

Posted: Wed Aug 22, 2007 1:24 pm
by jrestojeda

Code: Select all

// ALTA, MODIFICACION Y ELIMINAR
Function ABMBanco(oDbf,oLbx,oDlg,nKey)
Local oDlg1,Btn1,Btn2,OldOrd,Reg,SiNo,VecLoc[0],VecProv[0],;
      vCod,vRaz,vDir,vPro,vLoc,vTel,vCui,vPos,;
      oCod,oRaz,oDir,oPro,oLoc,oTel,oCui,oPos

Reg:=oDbf:Recno()

CargoVec_Ban(oDbf,oDbfLoc,@VecLoc,"L")
CargoVec_Ban(oDbf,oDbfProv,@VecProv,"P")

IF nKey<>46
   OldOrd:=oDbf:IndexOrder()
   oDbf:SetOrder(1)

   IF nKey=45
      DEFINE DIALOG oDlg1 RESOURCE "ABM_BANCOS" OF oDlg TITLE "ALTA DE BANCOS"
      oDbf:GoBottom()
      oDbf:Blank()
      vCod:=oDbf:CODIGO+1
      vRaz:=SPACE(30)
      vDir:=SPACE(30)

      SELECT LOCALIDA
      oDbfLoc:GoTop()
      vLoc:=TRAN(oDbfLoc:CODIGO,"######")+"     "+ oDbfLoc:DESCRIP

      SELECT PROVINC
      oDbfProv:GoTop()
      vPro:=TRAN(oDbfProv:CODIGO,"######")+"     "+ oDbfProv:DESCRIP

      SELECT BANCOS
      vPos:=0
      vTel:=SPACE(30)
      vCui:=SPACE(13)
      oDlg1:Update()
   ENDIF
   IF nKey=13 .OR. nKey=1 .OR. nKey=77
      DEFINE DIALOG oDlg1 RESOURCE "ABM_BANCOS" OF oDlg TITLE "MODIFICACION DE BANCOS"
      oDbf:Load()
      vCod:=oDbf:CODIGO
      vRaz:=oDbf:RAZONSOC
      vDir:=oDbf:DIRECCION

      SELECT LOCALIDA
      oDbfLoc:Seek(oDbf:LOCALIDA)
      IF !oDbfLoc:Eof()
         vLoc:=TRAN(oDbfLoc:CODIGO,"######")+"     "+ oDbfLoc:DESCRIP
      ELSE
         vLoc:=SPACE(30)
      ENDIF
      
      SELECT PROVINC
      oDbfProv:Seek(oDbf:PROVINCIA)
      IF !oDbfProv:Eof()
         vPro:=TRAN(oDbfProv:CODIGO,"######")+"     "+ oDbfLoc:DESCRIP
      ELSE
         vPro:=SPACE(30)
      ENDIF

      SELECT BANCOS
      vPos:=oDbf:CODPOSTAL
      vTel:=oDbf:TELEFONO
      vCui:=oDbf:CUIT
      
   ENDIF

   REDEFINE BTNBMP Btn1 ID 200 OF oDlg1 RESOURCE "FLOPPY" LEFT;
      ACTION GraboBanco(nKey,vCod,oDbf,vRaz,vDir,vLoc,vPro,vPos,vTel,vCui),;
             oDlg1:End();
      PROMPT "Grabar"
   REDEFINE BTNBMP Btn2 ID 201 OF oDlg1 RESOURCE "SALIR" LEFT;
      ACTION oDlg1:End();
      PROMPT "Salir"

   IF nKey=1
      Btn1:Disable()
   ENDIF

   REDEFINE GET oCod  VAR vCod       ID 100 OF oDlg1 PICTURE "######" WHEN(nKey=45);
                                                     VALID{||VerCodigo(vCod,oDbf)}
   REDEFINE GET oRaz  VAR vRaz       ID 101 OF oDlg1 PICTURE "@!"
   REDEFINE GET oDir  VAR vDir       ID 102 OF oDlg1 PICTURE "@!"

   REDEFINE COMBOBOX  oLoc VAR vLoc ITEMS VecLoc  ID 103 OF oDlg1;
      WHEN{||IniVectores(oLoc,VecLoc,oDbf:LOCALIDA)}

   REDEFINE COMBOBOX  oPro VAR vPro ITEMS VecProv ID 104 OF oDlg1;
      WHEN{||IniVectores(oPro,VecProv,oDbf:PROVINCIA)}

   REDEFINE GET oPos  VAR vPos       ID 105 OF oDlg1 PICTURE "######" VALID(oDbf:CODPOSTAL>=0)
   REDEFINE GET oTel  VAR vTel       ID 106 OF oDlg1 PICTURE "@!"
   REDEFINE GET oCui  VAR vCui       ID 107 OF oDlg1 PICTURE "##-########-#"
   REDEFINE GET oDbf:OBSERVA MEMO    ID 108 OF oDlg1
   ACTIVATE DIALOG oDlg1 CENTERED
ENDIF

IF nKey=46
   SiNo:=MsgNoYes("Esta seguro que desea eliminar el registro?",;
                  "Por favor, seleccione")
   IF SiNo
      oDbf:RecLock()
      oDbf:Delete()
      oDbf:Unlock()
   ENDIF
ENDIF

oDbf:SetOrder(OldOrd)
oDbf:GoTo(Reg)
oLbx:Refresh()
oLbx:SetFocus()
Return nil
//


// GRABO EN LA BASE
Function GraboBanco(nKey,vCod,oDbf,vRaz,vDir,vLoc,vPro,vPos,vTel,vCui)
IF nKey=45
   oDbf:Append()
ELSE
   oDbf:RecLock()
ENDIF

oDbf:CODIGO    :=vCod
oDbf:RAZONSOC  :=vRaz
oDbf:DIRECCION :=vDir
oDbf:LOCALIDA  :=VAL(SUBSTR(vLoc,1,6))
oDbf:PROVINCIA :=VAL(SUBSTR(vPro,1,6))
oDbf:CODPOSTAL :=vPos
oDbf:TELEFONO  :=vTel
oDbf:CUIT      :=vCui
oDbf:Save()
oDbf:Unlock()

Return nil
//
Te envío esta porcion de código donde hay un campo memo, "El de observación" no se si esto es lo que me estás pidiendo.

Saludos, Esteban