hola, aprovecho y pregunto: si la sesion es de datos es privada?


De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Pata del Santo
Enviado el: Miércoles, 18 de Octubre de 2006 08:43 a.m.
Para: GUFA List Member
Asunto: [GUFA] Falla Append from en Multiusuario

Yo lo haría más breve:
 
*nos aseguramos de cerrar la tabla si este usuario la tuviera abierta
IF USED("Tabla_destino")
  USE IN Tabla_destino
ENDIF
*buscamos una zona libre
SELECT 0
TRY
  *si nadie la tiene abierta, entonces la abro exclusiva para hacer un PACK
  USE Tabla_destino EXCLUSIVE
  PACK
CATCH
 *esto sucederá siempre que cualquier otro usuario tenga la tabla abierta (sea EXCLUSIVE o SHARED)
 *si da un error simplemente no hago nada (aunque no pude hacer el PACK)
ENDTRY
*ahora la vuelvo a abrir compartida, para que otros usuarios tengan acceso
USE Tabla_destino SHARED
*agrego los registros
APPEND FROM DBF("Cursor_Origen")
*cierro la tabla
USE
 
Pata.
 


De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Hernando Ferreira
Enviado el: miércoles, 18 de octubre de 2006 15:15
Para: GUFA List Member
Asunto: [GUFA] Falla Append from en Multiusuario

 
Necesito anexar registros de un cursor, previo borrado de los ya existente en la tabla de destino por medio de una condicion, el tema es que funciona bien cuando nadie mas esta usando la tabla, pero en cuanto alguien tiene el uso de la tabla no agrega los registros, ni da error ni nada. De paso revean este trozo de codigo para sacarle un mejor fruto al try.. catch, que es la 1ra vez que lo uso...
 
SELECT Tabla_destino
DELETE FOR num < 0
TRY
 USE IN Tabla_destino
 SELECT 0
 USE Tabla_destino IN 0 EXCLUSIVE
CATCH 
 IF !USED("Tabla_destino")
      USE Tabla_destino IN 0 AGAIN
 ENDIF
ENDTRY
 
IF ISEXCLUSIVE("Tabla_destino")
     SELECT Tabla_destino
     PACK
ENDIF
 
SELECT Tabla_destino
APPEND FROM DBF("Cursor_Origen")

USE IN Tabla_destino


Saludos
Nando


Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
Probalo ya!

Responder a