Consulta Sobre Campos Memo con DBT

Post Reply
remtec
Posts: 431
Joined: Fri May 12, 2017 2:50 pm

Consulta Sobre Campos Memo con DBT

Post by remtec »

Amigos.

Tengo una consulta Tecnica, sobre el uso de campos Memos con DBT.

Verificando el tamaño de crecimiento, me di cuenta que el archivo DBT, va creciendo cuando muestro un registro en pantalla y no realizo actualizacion, al grabar agregar 5,99 Kb Aprox

1 Dbf con 2 registros:
Folio Nro 10
Deta M 10

Proceso.
Inicio un Registro en Blanco: DBF 0,119 Kb DBT 0,513 Kb

Agrego un Registro de Texto con 579 Palabras: DBF 0,119 Kb DBT 6,183 Kb.

Realizo Proceso de mostrar texto sin actualizar y Grabo, repito el proceso 3 veces.

1. Muestro Texto en Pantalla Sin Actualizar y Grabo: DBF 0,119 Kb DBT 12.179 Kb
2. Muestro Texto en Pantalla Sin Actualiza y Grabo: DBF 0,119 Kb DBT 17,701 Kb.
3. Muestro Texto en Pantalla Sin Actualiza y Grabo: DBF 0,119 Kb DBT 23,413 Kb.

Alguien sabe a que se debe este crecimiento, sin haber sufrido modificacion del texto, solo por volver a grabar??

Debo usar DBT, debido a que las DBF usan Indices NTX y no puedo actualizarlos a CDX.

En espera de sus comentarios, les saluda muy atte.

Antonio.
User avatar
José Vicente Beltrán
Posts: 279
Joined: Mon Oct 10, 2005 8:55 am
Location: Algeciras, España
Contact:

Re: Consulta Sobre Campos Memo con DBT

Post by José Vicente Beltrán »

No hay ningún problema en usar memo con FPT e indices NTX, yo los uso desde hace años porque FPT hace un uso mucho mas eficiente del almacenamiento de datos. :shock:
remtec
Posts: 431
Joined: Fri May 12, 2017 2:50 pm

Re: Consulta Sobre Campos Memo con DBT

Post by remtec »

Hola José.

Muchas gracias por responder

Me podrías hacer el favor de mostrarme un trozo de código, para ver cómo se define el uso de campos memo con archivos FPT, usando Índices NTX, ya q por tratarse de un sistema desarrollado hace varios años donde sus DBF contienen varios miles de registros.

Me han comentado que son más robustos y seguros q los DBT, es tan así?

Uso FWH 17.09 y HARBOUR.

Agradeciendo tu atención y ayuda, te saluda atte.

Antonio.
User avatar
José Vicente Beltrán
Posts: 279
Joined: Mon Oct 10, 2005 8:55 am
Location: Algeciras, España
Contact:

Re: Consulta Sobre Campos Memo con DBT

Post by José Vicente Beltrán »

Code: Select all

REQUEST DBFNTX, DBFCDX

FUNCTION fCrea()
   local tbl[3][4]

   tbl[1][1] := "DOSIER"
   tbl[1][2] := "C"
   tbl[1][3] := 8
   tbl[1][4] := 0

   tbl[2][1] := "NOMBRE"
   tbl[2][2] := "C"
   tbl[2][3] := 50
   tbl[2][4] := 0

   tbl[3][1] := "DOCUMENTO"
   tbl[3][2] := "M"
   tbl[3][3] := 10
   tbl[3][4] := 0

   dbcreate("TABLA.DBF", tbl, "DBFCDX")    // esto genera el MEMO como FPT

return nil
 
El código anterior crea una database 'TABLA.DBF' con un campo MEMO tipo FPT.
Respecto a los índices NTX no hay que hacer NADA EN ABSOLUTO, debes actuar EXACTAMENTE como venias haciendo hasta ahora. :shock:
remtec
Posts: 431
Joined: Fri May 12, 2017 2:50 pm

Re: Consulta Sobre Campos Memo con DBT

Post by remtec »

Hola Jose

Muchas gracias por responder.

Me queda claro como indica tu codigo, el como se crea un archivo FPT, cuando usas indices CDX.

Pero en mi caso, al usar archivos indices, al crear el campo memo, se creo automaticamente el archivo DBT y no FPT, como tu me indicas, es por este motivo que tengo la duda de como se crea el FPT al estar usando archivos indices NTX.

Esperando aclarar esta duda, me despido atte.

Antonio.
User avatar
José Vicente Beltrán
Posts: 279
Joined: Mon Oct 10, 2005 8:55 am
Location: Algeciras, España
Contact:

Re: Consulta Sobre Campos Memo con DBT

Post by José Vicente Beltrán »

Antonio,
El formato DBT o FPT no depende de los índices que utilices, depende del RDD activo al momento de crear la database.
- Antes de crear la database debes hacer la llamada REQUEST DBFCDX
- Crea la dbase según el código del hilo anterior.
- Una vez creada la dbase con el campo MEMO en formato FPT ya puedes olvidarte de todo lo anterior, escribe al principio de tu programa REQUEST DBFNTX y procede como tengas por costumbre creando y manejando tus índices NTX y tus dbase sin importar el formato del campo MEMO, incluso puedes tener dbase con campos DBT y otras con campos FPT con tus índices NTX.
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Consulta Sobre Campos Memo con DBT

Post by karinha »

Intenta asi:

Code: Select all

ANNOUNCE RDDSYS
REQUEST DBFCDX, DBFFPT

FUNCTION...

   RDDSETDEFAULT("DBFCDX")

 

Saludos
João Santos - São Paulo - Brasil
remtec
Posts: 431
Joined: Fri May 12, 2017 2:50 pm

Re: Consulta Sobre Campos Memo con DBT

Post by remtec »

karinha wrote:Intenta asi:

Code: Select all

ANNOUNCE RDDSYS
REQUEST DBFCDX, DBFFPT

FUNCTION...

   RDDSETDEFAULT("DBFCDX")

 

Saludos
Hola Karinha.

Muchas gracias por tu ayuda.

Pero veo en lo que tu me indicas, que estas definiendo indices CDX??

Lo que yo necesito es usar Campo memo con archivos " FPT ", pero los sistemas usan Indices NTX.

O estoy muy mal??

Muchos Saludos.
Antonio
User avatar
jose_murugosa
Posts: 943
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Contact:

Re: Consulta Sobre Campos Memo con DBT

Post by jose_murugosa »

No podrás generar tablas con memos FPT a menos que uses la RDD DBFCDX, y no podrás crear indices NTX a menos que uses RDD DBFNTX peroooooo ambas cosas son independientes.
Genera las bases con REQUEST DBFCDX SIN INDICES.
retira la línea y genera los índices y se generaran tipo NTX pero tus memos serán FPT.


Pero me permito una reflexion....

Porqué usar una versión híbrida como esta si puedes utilizar los indices CDX y ganas muchas ventajas 1) los indices son mas pequeños y mas faciles de levantar en la red, 2) puedes aprovechar su metodo de almacenamiento con bags de indices de modo que creas un bag con todos tus indices y te olvidas de que indices tienes activos porque siempre se actualizaran todos y si agregas un índice no tendrás que buscar todas las partes donde ese indice es necesario que esté activo, solo lo agregas al bag y listo.

Me parece que te vale la pena analizar cuidadosamente la documentación de la rdd DBFCDX y sin lugar a dudas comprenderás que el esfuerzo es mínimo para modificar tu código comparado con las ventajas ENORMES que estos índices tienen.

No lo que rogamos por esta RDD los programadores por sus incontables ventajas y cono celebramos que se agregara a fivewin (lo que llevo tiempo), te recomiendo muchísimo que te animes a cambiarte a los indices DBFCDX, si quieres puedo enviarte documentación, no tienes más que pedirmela y indicarme un mail.
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
remtec
Posts: 431
Joined: Fri May 12, 2017 2:50 pm

Re: Consulta Sobre Campos Memo con DBT

Post by remtec »

Hola José Murugosa.

Realmente te pasaste, muchas gracias por tu tiempo y ayuda, me estas dando una clase sobre este tema y te lo agradadezco.

Mi problema en este caso, es que me han pedido que cree un menú con algunas opciones para actualizar texto tipo Word y que hoy se usa un browse echo en Clipper, para realizar este proceso y que es muy limitado, en lo cual se usa mucho tiempo en redigitacion de datos, como explique antes, este sistema fue realizado con Archivos indices NTX, hace varios años, tiene mucha informacion y lo peor que no se cuenta con los programas PRG de este sistema, por lo que me veo obligado a usar las DBF y los indices, tal como son procesados a diario, ya que es un sistema de alto flujo de datos.

Le tengo algun temor a usar CAMPOS MEMO, me recomendaron FPT por sobre los DBT, ya que la información que debo almacenar es confidencia legalmente, por lo que debe ser muy seguro su almacenamiento.

Pero considerando tu ofrecimiento, te molestare en un tiempo mas.

Eternamente agradecido, te saluda muy atte.,

Antonio.
User avatar
jose_murugosa
Posts: 943
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Contact:

Re: Consulta Sobre Campos Memo con DBT

Post by jose_murugosa »

Ahora comprendo la razón de la solución híbrida, bueno quedo a tus órdenes por cualquier consulta que esté a mi alcance contestar :)

Un abrazo.
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
Post Reply