Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Sugerencias para replicacion en sucursales (https://www.clubdelphi.com/foros/showthread.php?t=69827)

JXJ 09-11-2011 23:04:34

hola. ando viendo tambien esto de replicacion

hasta ahora tengo entendido que solo se estan manejando datos de tipo
varchar.
char
integer.

pero con los campos de tipo blob
y de sus subtipos binary.

esto lo pregunto por que voy a replicar una base de datos y en su estructura hay archivos que quiero que
de la central pasen a las db sucursales

como pueden ser imagenes.
archivos pdf,
archivos xml.
binarios dentro de el tipo blob.


como se haria para actualizar esta informacion?

hasta ahora he pensado en meter la informacion en base 64 dentro del campo blob.
y programar cada que se mete algo que sea en base 64 pero si en este caso el cliente
quiere que su factura tenga su logotipo. eso lo tengo que meter en la sincronizacion.
o las fotos de los empleados. al usar fastreport o cualquier otro. no entendera que el campo donde va el grafico esta en Base 64
sino que leera solo texto.

alguna idea??

gracias.

AzidRain 10-11-2011 00:04:00

A reserva de la paliza...yo teno funcionando un sistema multisucursales, todas en linea conectadas a un servidor MySQL sin problemas desde hace casi 4 años. La verdad me perdí entre tantas cosas que mencionan, pero la base radica en el diseño de la bd no tanto en la implementación. La redundancia ya es otra cosa y esa si seria tema de una buena discusión y solución pues no hay la respuesta perfecta.

En una empresa que laboré se manejaba casi 500 sucursales en línea y si había situaciones en las que no tienes conexión con el servidor, desgraciadamente era una empresa e donde el cliente casi nunca requiere factura, que es el verdadero problema.

Me topado con los siquientes asegunes;

1.- El cliente ya existe en el servidor (con clave autogenerada [olvidemos el RFC pues pues puede o no tenerlo[)
Se va la lu z y no hay conexion, puedes seguir facturando "local" pero como evitas que se te dupliquen números de cliente y cosas así..

En verdad creo que es un verdadero caso para analizar, sin meternos mucho en minucias, es tan simple o complicado como comentar como lo han resolvido lo sque yq han podido.

Un ultimo comentario, ¿Por que creen que los bancos, aerolíneas y demás mejo optan por el clásico "no hay sistema"?

guillotmarc 10-11-2011 11:13:26

Cita:

Empezado por JXJ (Mensaje 418060)
hola. ando viendo tambien esto de replicacion

hasta ahora tengo entendido que solo se estan manejando datos de tipo
varchar.
char
integer.

pero con los campos de tipo blob
y de sus subtipos binary.

esto lo pregunto por que voy a replicar una base de datos y en su estructura hay archivos que quiero que
de la central pasen a las db sucursales

como pueden ser imagenes.
archivos pdf,
archivos xml.
binarios dentro de el tipo blob.


como se haria para actualizar esta informacion?

hasta ahora he pensado en meter la informacion en base 64 dentro del campo blob.
y programar cada que se mete algo que sea en base 64 pero si en este caso el cliente
quiere que su factura tenga su logotipo. eso lo tengo que meter en la sincronizacion.
o las fotos de los empleados. al usar fastreport o cualquier otro. no entendera que el campo donde va el grafico esta en Base 64
sino que leera solo texto.

alguna idea??

gracias.

¿ Porqué recodificar los binarios ?.

En un campo Blob de Firebird puedes insertar directamente el binario, sin necesidad de pasarlo a texto. De esta forma FastReports puede utilizar directamente las imágenes guardadas en la base de datos, sin necesidad de hacer nada especial.

Yo me suelo crear este dominio :

CREATE DOMAIN "Binario" AS BLOB SUB_TYPE 0 SEGMENT SIZE 80;;

Saludos.

JXJ 11-11-2011 21:02:14

estos diasn ando bien menso.


lo que no entiendo es si en la base de datos hay un campo blob que contenga lo que sea una imagen, un archivo de texto word, xml. exe

lo que sea un archivo.

como manejo ese archivo,
he penso en usar variables para el texto y el id,

com seria el sql para hacer la actualziacion??

yo estoy en un query asi, en la matriz

select codprodiucto, imagenporducto, descripcioword from productos

y hago un query igual en la base de datos de la sucursal

select codprodiucto, imagenporducto, descripcioword from productos

y comparo si el codproducto existe.
en el
for i := 0 to record.count -1 do
begin
if querymatriz.codproducto <> querysucursal.codproducto

then
begin
insert into 'sucursal producto' , descripcioword ;= querymatriz , descripcioword
end
end;


// creoq ue lapregunta es

¿si tengo un campo blob, como paso el campo blob sin importar su contenido, a otra base de datos, sin archivos intermedios.¡

Casimiro Notevi 11-11-2011 21:17:21

JXJ, pareces novato de los que no ponen etiquetas al código ;)

guillotmarc 11-11-2011 21:25:51

Cita:

Empezado por JXJ (Mensaje 418279)
estos diasn ando bien menso.


lo que no entiendo es si en la base de datos hay un campo blob que contenga lo que sea una imagen, un archivo de texto word, xml. exe

lo que sea un archivo.

como manejo ese archivo,
he penso en usar variables para el texto y el id,

com seria el sql para hacer la actualziacion??

yo estoy en un query asi, en la matriz

select codprodiucto, imagenporducto, descripcioword from productos

y hago un query igual en la base de datos de la sucursal

select codprodiucto, imagenporducto, descripcioword from productos

y comparo si el codproducto existe.
en el
for i := 0 to record.count -1 do
begin
if querymatriz.codproducto <> querysucursal.codproducto

then
begin
insert into 'sucursal producto' , descripcioword ;= querymatriz , descripcioword
end
end;


// creoq ue lapregunta es

¿si tengo un campo blob, como paso el campo blob sin importar su contenido, a otra base de datos, sin archivos intermedios.¡

Hola.

Utiliza una consulta parametrizada, de forma que en el parámetro del campo Blob le puedes asignar directamente el valor del campo Blob en la base de datos de origen (no hay ningún problema en que su contenido sea binario).

insert into productos (codprodiucto, imagenporducto, descripcioword) values (:codprodiucto, :imagenporducto, :descripcioword);

Saludos.

Chaja 26-09-2012 06:54:05

mensaje para guillote.... sobre replicacion
 
Master:
Estuve leyendo el tema este de la replicacion y no le encuentro la vuelta, sera por que son las 2 de la madrugada y no me funciona. Yo Tengo que hacer una replicacion, por ahora del servidor a las suc. Con los articulos,rubros,sub y precios. son dos sucursales por ahora. Como hago para hacer la replicacion y que ademas asegurarme del que tuvo exito la replicacion. La verdad que no se como hacer todo este lio. alguna sugerencia ? Gracias

Casimiro Notevi 26-09-2012 08:02:27

Mi consejo: descansa. Luego apagas el ordenador, coges un papel y un lápiz y piensas lo que necesitas hacer, cómo sería el traspaso de un dato, cuando termines de hacer eso lo tendrás tan claro que entonces será el momento de plasmarlo en código.
Pero primero de todo, tenerlo todo claro en papel.

nicolas77 29-03-2015 19:48:09

Estoy leyendo este interesante tema y me queda uno duda en la forma que Marc genera las claves unicas.

él propone:

ID + SUC
ejemplo:
10001
10101
...

me surge la duda porque no mejor asi:
SUC + ID
ejemplo:
01100
01101
...

de esta manera, tendria ordenado por codigo de sucursal las claves.

¿como lo ven?

gracias


La franja horaria es GMT +2. Ahora son las 10:12:55.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi