Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-03-2016
KOVNEO KOVNEO is offline
Registrado
NULL
 
Registrado: mar 2016
Posts: 5
Poder: 0
KOVNEO Va por buen camino
Update De Una Vista Firebird

HOLA QUIERO REALIZAR UN UPDATE A UNA VISTA PERO ME MARCA QUE ES SOLO DE LECTURA
cannot update read-only view ENTRESIS_CC_VE.

YA LE E OTORGADO PERMISOS PERO NO TENGO IDEA DE CUAL SEA MI ERROR
SI ME PUDIERAN ORIENTAR LES ESTARÍA MUY AGRADECIDO
Código SQL [-]
CREATE VIEW ENTRESIS_CC_VE( CC_ID,FECHA_C,VE_ID,FECHA_V)
  AS
  SELECT 
E.DOCTO_DEST_ID,
C.FECHA,
E.DOCTO_FTE_ID,
V.FECHA
  FROM DOCTOS_ENTRE_SIS E
   JOIN
DOCTOS_CC C
      ON C.DOCTO_CC_ID = E.DOCTO_DEST_ID
   JOIN
DOCTOS_VE V
      ON E.DOCTO_DEST_ID = C.DOCTO_CC_ID AND E.DOCTO_FTE_ID = V.DOCTO_VE_ID;

GRANT ALL ON DOCTOS_CC TO ENTRESIS_CC_VE;
GRANT ALL ON DOCTOS_VE TO ENTRESIS_CC_VE;

UPDATE ENTRESIS_CC_VE  SET FECHA_C=DATEADD(datediff (year from FECHA_C to cast('01/01/2015' as date)) year to FECHA_C),
FECHA_V=DATEADD(datediff (year from FECHA_V to cast('01/01/2015' as date)) year to FECHA_V)
WHERE EXTRACT(YEAR FROM FECHA_C) NOT LIKE '%2016' OR EXTRACT(YEAR FROM FECHA_V) NOT LIKE '%2016';
Responder Con Cita
  #2  
Antiguo 15-03-2016
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 26
Delphius Va camino a la fama
KOVNEO el error apunta a que el conjunto de datos devuelto por dicha vista no es actualizable. Así como con algunos Querys con consultas simples a los que se les puede realizar un insert o update, hay vistas que se les permita hacer insert o update.
Esta no es el caso ya que interviene un join y el conjunto de restricciones por el lado del where a cumplir la hacen muy compleja de soportar un UPDATE.

No tiene nada que ver con los permisos.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 15-03-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por KOVNEO Ver Mensaje
HOLA
Mira el punto 6 de nuestra guía de estilo.
Responder Con Cita
  #4  
Antiguo 15-03-2016
ASAPLTDA ASAPLTDA is offline
Miembro
 
Registrado: jun 2003
Ubicación: COLOMBIA-CALI
Posts: 639
Poder: 22
ASAPLTDA Va por buen camino
Vista Actualizable

Hola Cuando la vista no es actualizable se debe crear un trigger a la vista, y en el trigger efectuar los correspondientes update / insert a la tabla fisica
ejemplo

disculpa a todos se me olvido colocar el de sql

-- **************************************
CREATE VIEW LISTADEPRECIOSDET_V0(
LISTAPRECIO,
RECURSO,
DRECURSO,
UNDMED,
RANGOINFERIOR,
RANGOSUPERIOR,
CURCOD,
PRECIOVENTAUNITARIO,
PRECIOVENTAMINIMO,
FLGPRECIOVENTACERO,
VALORTOTALMINIMO,
FLGREQCONTENEDOR,
TAXCOD,
VRTAX,
FLGIVAINCLUIDO,
FLGREQREPORTPRECIOVENTAUNITARIO,
ACTIVO)
AS
SELECT D.LISTAPRECIO, D.RECURSO, R.DRECURSO,R.UNDMED, RANGOINFERIOR, RANGOSUPERIOR, D.CURCOD, D.PRECIOVENTAUNITARIO, D.PRECIOVENTAMINIMO,
D.FLGPRECIOVENTACERO,D.VALORTOTALMINIMO , D.FLGREQCONTENEDOR , D.TAXCOD ,D.VRTAX,D.FLGIVAINCLUIDO,
D.FLGREQREPORTPRECIOVENTAUNITARIO, D.ACTIVO FROM LISTADEPRECIOSDET D
INNER JOIN RESMST R ON R.RECURSO = D.RECURSO
;


-- ******************************************
SET SQL DIALECT 3;



SET TERM ^ ;



CREATE OR ALTER TRIGGER LISTADEPRECIOSDET_V0_BI0 FOR LISTADEPRECIOSDET_V0
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
POST_EVENT 'DUMMY_EVENT';
END
^


CREATE OR ALTER TRIGGER LISTADEPRECIOSDET_V0_BI0 FOR LISTADEPRECIOSDET_V0
ACTIVE BEFORE INSERT POSITION 0
AS
begin
IF(INSERTING) THEN BEGIN
INSERT INTO LISTADEPRECIOSDET (LISTAPRECIO, RECURSO, CURCOD,RANGOINFERIOR,RANGOSUPERIOR,PRECIOVENTAMINIMO,PRECIOVENTAUNITARIO,
FLGPRECIOVENTACERO, VALORTOTALMINIMO,FLGREQCONTENEDOR,TAXCOD,VRTAX,FLGIVAINCLUIDO,FLGREQREPORTPRECIOVENTAUNITARIO)

VALUES(NEW.LISTAPRECIO, NEW.RECURSO,NEW.CURCOD,NEW.RANGOINFERIOR,NEW.RANGOSUPERIOR,NEW.PRECIOVENTAMINIMO,NEW.PRECIOVENTAUNIT ARIO,
NEW.FLGPRECIOVENTACERO, NEW.VALORTOTALMINIMO,NEW.FLGREQCONTENEDOR, NEW.TAXCOD, NEW.VRTAX,
NEW.FLGIVAINCLUIDO, NEW.FLGREQREPORTPRECIOVENTAUNITARIO);

END
end
^

SET TERM ; ^
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
Error al ejecutar la sentencia update en firebird Maribel09 Firebird e Interbase 5 28-08-2015 18:40:05
Firebird 2.5 Update Abel Garcia Firebird e Interbase 13 10-05-2011 13:05:06
Crear vista en Firebird Caral Firebird e Interbase 7 08-01-2008 21:20:25
Firebird y Vista KAYO Firebird e Interbase 1 19-07-2007 17:01:11
Firebird 1.5.4 funciona en Win Vista pero Firebird 2.0.1 NO !!! Hagen Firebird e Interbase 5 19-05-2007 22:17:54


La franja horaria es GMT +2. Ahora son las 01:08:33.


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