Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/04/2011, 07:17
erickvargas
 
Fecha de Ingreso: abril-2008
Mensajes: 1
Antigüedad: 16 años
Puntos: 0
Respuesta: duda con insersion multiple en phpmaker

Hola, te comento que yo tuve el mismo caso, utilizando BD MSSQLServer y la solucion fue crearme una vista en SQLServer con los campos de todas las tablas que necesitaba para mi formulario y luego crear un trigger en la vista para el evento afterupdate (despues de actualizar) donde colocaba las consultas para actualizar los campor en las tablas correspondientes, el caso es que por lo general las vistas no son editables por eso se debe crear en la BD el procedimiento para actualizar.

CREATE TRIGGER [dbo].[reppozo_update] ON [dbo].[reppozo]
WITH EXECUTE AS CALLER
INSTEAD OF UPDATE
AS
BEGIN
/* Este proceso hace actualizable la vista reppozo*/
/* Trigger body */
SET NOCOUNT ON

UPDATE infopozo
SET
costo = I.costo,
fecexp = I.fecexp,
estad = I.estad,
condi = I.condi,
surg = I.surg,
uso = I.uso,
altbo = I.altbo,
cauda = I.cauda,
diame = I.diame,
profe = I.profe,
profd = I.profd,
elect = I.elect
FROM infopozo E, inserted I
WHERE E.idpozo = I.idpoz

UPDATE
dbo.ubicacionpozo
SET
idlocal = I.idlocal,
idbarri = I.idbarri,
direcc = I.direcc,
acces = I.acces,
corx = I.corx,
cory = I.cory
FROM ubicacionpozo E, inserted I
WHERE E.idpozo = I.idpoz

UPDATE
dbo.perpozo
SET
idtipper = I.idtipper,
idmetp = I.idmetp,
desper = I.desper,
desequ = I.desequ,
idemp = I.idemp
FROM perpozo E, inserted I
WHERE E.idpozo = I.idpoz

UPDATE
dbo.instalpozo
SET
idbomba = I.idbomba,
idextra = I.idextra,
poten = I.poten,
profs = I.profs,
idfuem = I.idfuem,
diame = I.diame,
medic = I.medic
FROM instalpozo E, inserted I
WHERE E.idpozo = I.idpoz

UPDATE
dbo.puntomonitoreo
SET
codptm = I.idproy,
nomptm = I.nomd,
corx = I.corx,
cory = I.cory,
estado = I.estad
FROM puntomonitoreo E, inserted I
WHERE E.ideptm = I.idpoz

UPDATE
dbo.pozo
SET
idemp = I.idemp,
idproy = I.idproy,
nomd = I.nomd,
prof = I.prof
FROM pozo E, inserted I
WHERE E.idpoz = I.idpoz

UPDATE
dbo.empresa
SET
dbo.empresa.nom = I.nom,
dbo.empresa.dir = I.dir,
dbo.empresa.fon = I.fon,
dbo.empresa.fax = I.fax,
dbo.empresa.mail = I.mail,
dbo.empresa.cel = I.cel,
dbo.empresa.web = I.web
FROM empresa E, inserted I
WHERE E.idemp = I.idemp


END
GO

En PHPMaker luego debes especificar el (los) campo(s) llave(s) para la vista creada.