Está en la página 1de 3

sqldata y sqldata2 tienen funciones para el almacenamiento

en cache en el disco local de cada cliente, de cursores obtenidos


desde cualquier motor. osea si entran a un formulario y
descargan por primera vez una tabla maestro como articulos
por ejemplo, esta se almacenara en el disco local encripado.
en un directorio oculto.
ahora al abrir cualquier formulario que descargue una tabla maestro
que este almacenada en cache, no la descargara del servidor,
sino que la abrira de la que tiene almacenada en el
disco local. esto cuando acceden a servidores en la
web puede ser de muchisima utilidad. ya que ganan
mucha velocidad al abrir un formulario.
para que esto funcione es muy simple solo hay 2 instrucciones
en psqlejecutar especificar "consultac" y una otra funcion
psqlcacheborrar

ejemplo
osqldata.psqlejecutar(_screen,"1",thisform,,"consultac","articulos","arti
culos","select * from articulos")
*pueden crearle indices
cursorsetprop("buffering",3)
index on nombre tag nombre
cursorsetprop("buffering",5) esto es obligatorio para sqldata2, y
opcional para sqldata accediendo a cualquier motor, y obligatorio para
sqldata accediendo a dbfs

*esto va en el load del formulario como siempre lo han hecho y funciona


automaticamente.

recuerden:
consultac: para usar con tablas maestros que tienen pocos cambios para
que se almacenen en cache
consulta: para un hacer un reporte, siempre trae los datos del servidor
consultag: para hacer una consulta a una tabla que luego se va a grabar.

este comando les sera util


psqlcacheborrar(_sreen,"1","articulos") &&borra el cache solo de la
tabla articulos
entonces la proxima vez que la lea sera desde el servidor y la almacenara
nuevamente
en cache automaticamente

psqlcacheborrar(_sreen,"1","todos") &&borra todas las tablas almacenadas


en cache
en la pc cliente. y la proxima vez se leeran todas desde el servidor.

Nota:
cuando se produce un error en el sistema, se borran todas las tablas
almacenadas en cache
automaticamente. cuando entre al sistema nuevamente, o carguen el
formulario
se volvera a leer desde el servidor y se almacenara nuevamente en la pc
local.

esta funcion psqlejecutar con la configuracion consultac debe colocarse


en el load
de todos los formularios que la utilicen la misma tabla maestro como
articulos,
ya que se volveran a abrir desde el disco
local en cache, en el entorno de datos del nuevo formulario que estan
abriendo.
pero lo hara rapidamente ya que no accedera al servidor.
asi que si cierran y abren un formulario no se accedera al servidor a
esta tabla
hasta que decidan borrar el cache ustedes mismos o se genere un error en
el sistema.

Novedad:
ahora cuando graben una tabla maestro
cuando use consultac en el cliente verificara si hubo cambios y si los
hubo borrara
la que tiene en cache y generara una nueva que la almacenara en cache
nuevamente.
si no hubo cambios entonces usara la del cache sin descargarla del
server.

para que funcione deben configurar


osqldata.psqlcache(_screen,"1","automatico","maestros") &&se coloca el
nombre de una tabla
que contendra 3 campos
sugerencia de nombre de tabla maestros
id int autoincremental
tabla char(30)
cambio datetime

y la dejan sin contenido, se empezara a llenar sola a medida que graben


sus tablas,
se grabaran la informacion de todas las tablas que modifiquen en
cualquier lugar.
y se colocara el datetime actualizado que se comparara con la que tiene
cada cliente
cuando acceda a un formulario.
si son diferentes entonces borra el cache de esa tabla unicamente y la
actualizara y
la guardara nuevamente en cache.

esto les sera de mucha utilidad en servidores web para no estar


descargando siempre
las tablas maestro que tienen poca modificacion, y a la vez se
autoactualizaran
cuando haya algun cambio.

otra novedad si despues de grabar una venta y quieren verificar si hay


cambios en la tabla
articulos que esta grabada con consultac y psqlejecutar,

pueden poner
en el boton desspues de grabar la venta

osqldata.psqlreejecutar(thisform,"articulos")

También podría gustarte