Ayuda URGENTE para actualizar tablas relacionadas

56 views
Skip to first unread message

Gustavo Rojo

unread,
Jul 14, 2014, 6:42:15 PM7/14/14
to publice...@googlegroups.com
Hola Foro! espero estén muy bien!

Necesitaría ayuda para solucionar el siguiente problema de datos.

Uso el motor de base de datos de visual foxpro 9, trabajo con vistas locales actualizables y modo de buffering según corresponda.

Tengo la vista de Clientes y vistas secundaria de Teléfonos y Tarjetas.
La relación entre las tablas esta dada por el campo id_cliente. El problema esta en que ese campo es autoincremental, por ende hasta no realizar un tableupdate y recuperar su valor no tengo ese dato, entonces al hacer los insert en las tablas secundarias no logro establecer la relación.

Como debería manejar estos casos?




Gustavo Rojo

unread,
Jul 17, 2014, 7:38:24 PM7/17/14
to publice...@googlegroups.com
Solucionado!!!

SET MULTILOCKS ON
BEGIN TRANSACTION
IF TABLEUPDATE(.T.,.T.,"v_cliente")
nIDCte = GETAUTOINCVALUE(0)

SELECT v_cliente_telefono
replace v_cliente_telefonos.id_cliente WITH nIDCte ALL 

SELECT v_cliente_tarjetas
replace v_cliente_tarjetas.id_cliente WITH nIDCte ALL 
IF TABLEUPDATE(.T.,.T.,"v_cliente_telefonos") and TABLEUPDATE(.T.,.T.,"v_cliente_tarjetas")
END TRANSACTION
 ELSE 
  =AERROR(errors)
=MESSAGEBOX("Error al guardar datos de Telefonos / Tarjetas" +CHR(13)+ 'Error: '+STR(errors(1)) +CHR(13)+ 'Texto: '+errors(2),48,"Atencion")
ROLLBACK
=TABLEREVERT(.t.,"v_cliente_telefonos")
=TABLEREVERT(.t.,"v_cliente_tarjetas")
ENDIF 
  ELSE
  =AERROR(errors)
=MESSAGEBOX("Error al guardar Cliente" +CHR(13)+ 'Error: '+STR(errors(1)) +CHR(13)+ 'Texto: '+errors(2),48,"Atencion")
ROLLBACK
=TABLEREVERT(.t.,"v_cliente")
=TABLEREVERT(.t.,"v_cliente_telefonos")
=TABLEREVERT(.t.,"v_cliente_tarjetas")
ENDIF 


Saludos!
Reply all
Reply to author
Forward
0 new messages