Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-02-2011
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Poder: 21
lbidi Va por buen camino
Question Aplicacion en red

Estimados foristas.

No estoy seguro que este hilo este en el lugar adecuado, pido a los moderadores que lo muevan si es necesario..

Hasta ahora he tenido que desarrollar aplicaciones monousuario, ahora me surge un proyecto para utlizarlo en red. Logico.

Mi problema es el siguiente, trabajo con D2007 y Advantage. Las tablas son "planas" y se pueden manejar x SQL o directo.

Hasta ahora yo tenia en mente que cuando haciamos edit sobre un registro,
este se lockeaba hasta hacer el post, pero creo estar equivocado porque sobre la marcha he puesto dos pcs a grabar al mismo tiempo y se me han superpuesto datos.

Como se logra o se evita?? Le he puesto un try.. final.. , pero cuando el segundo pc intenta hacer el try, no puede , se va.. y no me graba..

Me explico??

He revisado casi todo el club pero no he encontrado alguna referencia.

Gracias adelantadas.

Saludos

Leo
Responder Con Cita
  #2  
Antiguo 15-02-2011
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Revisa éste hilo haber si te sirve...
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #3  
Antiguo 15-02-2011
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
y podrias poner el codigo que utilizas, tanto para editar como para actualizar el registro....

cuando realizas una actualización de registro en 2 pcs diferentes, lo que hace el motor de base de datos es guardar los cambios del primer Pc y luego los cambios del segundo pc.... por lo que te quedará los cambios del 2 pc actualizados....

lo más probable es que necesites preguntar antes de editar un registro si esta en estado de edición... si se esta editando en otro pc... lanzas un mensaje que no se puede actualizar... de lo contrario lo actualizas

Salu2
__________________
BlueSteel
Responder Con Cita
  #4  
Antiguo 15-02-2011
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Poder: 21
lbidi Va por buen camino
Thumbs down

Gracias amigos por responder.

rgs uso Advantage y no mysql.. Advantage tiene transacciones para la version servidor pero tambien tiene una version "local" la cual uso debido al poco tamaño de la bases, en esta version no se pueden usar transacciones.

Por lo cual debo hacer los loqueos y desloques yo mismo. Es una aplicacion de facturacion asi que mi problema se da cuando tengo que actualizar las numeradoras de las facturas.

Cuando un pc entra debo loquear el registro con el ultimo numero, actulizar el resto de las bases, incrementar el mismo y liberarlo. Cuando hay otro pc intentanto hacer lo mismo debe "esperar" ( sin mensaje ) a que se libere el registro, y haga el mismo proceso.

Lo que no puedo o no se hacer es que quede "esperando" hasta que se libere el registro.. Como la mayoria vengo de un ambiente xbase donde se hacia un loop hasta que pasaba, en Delphi no me doy cuenta como lograrlo.

Espero haber explicado un poco mas mi dilema..

El siguiente es parte de mi codigo.

Código Delphi [-]
try

    cTabla_Num.Edit;
    nUltimo := cTabla_Num.FieldByName('Estudios').AsFloat + 1;

    cTabla.First;
    while not cTabla.Eof do
    begin

        nCodigo := cTabla.FieldByName('Codigo').AsInteger;
 
        tbl_Estudios.Append;
        tbl_Estudios.Edit;
        tbl_Estudios.FieldByName('Numero').AsFloat      := nUltimo;
        tbl_Estudios.FieldByName('Fecha').AsDateTime  := edt_Fecha.Date;
        tbl_Estudios.FieldByName('Paciente').AsFloat     := cCodPaciente;
        tbl_Estudios.FieldByName('Ficha').AsFloat         := nFicha;
        tbl_Estudios.Post;

        cTabla.Next;

     end;
finally

    Qry.Close;
    cTabla_Num.FieldByName('Estudios').AsFloat := nUltimo;
    cTabla_Num.Post;

end;

Gracias por la ayuda..

Saludos
Responder Con Cita
  #5  
Antiguo 16-02-2011
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Siguiendo los enlaces de rgstuamigo (y si buscas en el club sobre bloqueos optimistas y pesimistas -seguro que encuentras más, porque hemos hablado otras veces de ellos-, link1, link2, link3) lo primero que debes tener claro es, qué tipo de bloqueos existen y cual de ellos necesitas.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 16-02-2011
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Lightbulb

Cita:
Empezado por Neftali Ver Mensaje
Siguiendo los enlaces de rgstuamigo (y si buscas en el club sobre bloqueos optimistas y pesimistas -seguro que encuentras más, porque hemos hablado otras veces de ellos-, link1, link2, link3) lo primero que debes tener claro es, qué tipo de bloqueos existen y cual de ellos necesitas.
Es exactamente lo que traté de sugerir al poner el link a ese hilo,pero creo que nuestro amigo lbidi no le dió una leida profunda ...ya que ese hilo(tema) tiene referecias hacia otros hilos donde se habla del tema, y lógicamente las diferentes soluciones que se dan pueden aplicarse en cualquier Servidor de Base de datos; , he ahí la importancia de leer minuciosamente, aunque el título del tema no me diga mucho o se trate de MySQL....
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #7  
Antiguo 16-02-2011
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Ahora, que he vuelto a leer el emnsaje, no acabo de tener claro que estás yhaciendo una aplicación en red (como reza el título), pero estás usando una versión local.
¿Es correcto?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #8  
Antiguo 17-02-2011
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Poder: 21
lbidi Va por buen camino
Si, neftali. Estoy haciendo una aplicacion en red de maximo 3 pcs.
Lo de version "local" me referia a la base de datos que uso Advantage DataBase, la cual tiene una version servidor para instalar sobre un os servidor ( lease Novell, Windows Server o Linux ), y otra "local" como access o paradox, aunque mucho mejor. Esta version local son solo un par de dlls, y es free.

Gracias por responder..
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Minimizar una aplicacion al iniciar aplicacion sidneyb OOP 7 11-01-2010 18:51:53
Aplicación de Servicio+Aplicación Normal +Socket jake API de Windows 5 21-06-2007 18:53:19
Cómo cerrar otra aplicacion desde mi aplicacion en Delphi 7 Gaby123 API de Windows 5 04-01-2007 22:44:51
Diferencia entre aplicacion Clx y aplicación normal??? JorgeBec Varios 1 27-10-2004 17:30:49
aplicacion vertical? aplicacion horizontal? maruenda Varios 3 28-02-2004 23:23:20


La franja horaria es GMT +2. Ahora son las 00:30:47.


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
Copyright 1996-2007 Club Delphi