Fórum View atualizavel #51052
17/05/2005
0
select Cep_rua.codigo, Cep_rua.tipo_codigo, Cep_rua.bairro_codigo, Cep_rua.cidade_codigo, Cep_rua.uf_codigo, cep_tipo.TSIGLA, cep_rua.cep, Cep_rua.NOME, cep_bairro.BNOME, cep_cidade.CNOME, cep_uf.USIGLA from cep_rua left join cep_Tipo on (tipo_codigo = Tcodigo) left join CEP_BAIRRO on (bairro_codigo = Bcodigo) left join CEP_CIDADE on (cidade_codigo = Ccodigo) left join CEP_UF on (uf_codigo=Ucodigo) ;
A princiap tabela é a cep_rua, que faz ligação para outras como, bairro cidade, uf, tipo.
Sistemald
Curtir tópico
+ 0Posts
17/05/2005
Sistemald
create view V_Cep2 ( codigo, cep, tipoSigla, nome, bairro, cidade, uf, tipo_codigo, bairro, cidade_codigo, uf_codigo ) as select cep_rua.codigo, cep_rua.cep, (select cep_TIpo.tsigla from cep_tipo where cep_tipo.tcodigo = cep_rua.tipo_codigo) as TipoSigla, cep_rua.nome, (select cep_bairro.bnome from cep_bairro where cep_bairro.bcodigo = cep_rua.bairro_codigo) as Bairro, (select cep_Cidade.cnome from cep_cidade where cep_cidade.Ccodigo = cep_rua.Cidade_codigo) as Cidade, (select cep_UF.usigla from cep_Uf where cep_uf.ucodigo = cep_rua.uf_codigo) as UF, cep_rua.tipo_codigo, cep_rua.bairro_codigo, cep_rua.cidade_codigo , cep_rua.uf_codigo from cep_rua
Mas o seguinte erro ocorreu:
Gostei + 0
17/05/2005
Gandalf.nho
SET TERM ^; CREATE TRIGGER V_CEP_BI FOR V_CEP BEFORE INSERT AS BEGIN INSERT INTO Cep_rua VALUES(NEW.codigo, NEW.tipo_codigo, NEW.bairro_codigo, NEW.cidade_codigo, NEW.uf_codigo, NEW.cep, NEW.NOME; END ^ CREATE TRIGGER V_CEP_BU FOR V_CEP BEFORE UPDATE AS BEGIN UPDATE Cep_rua SET codigo = NEW.codigo, tipo_codigo = NEW.tipo_codigo, bairro_codigo = NEW.bairro_codigo, cidade_codigo = NEW.cidade_codigo, uf_codigo = NEW.uf_codigo, cep = NEW.cep, NOME = NEW.NOME WHERE OLD.codigo; END ^ CREATE TRIGGER V_CEP_BD FOR V_CEP BEFORE DELETE AS BEGIN DELETE FROM Cep_rua WHERE OLD.codigo; END ^ SET TERM ;^
Pronto, agora sua view será atualizável. Não esqueça que vc se refere apenas aos campos da tabela principal referenciada na view.
Gostei + 0
18/05/2005
Sistemald
Gostei + 0
18/05/2005
Gandalf.nho
Sim.
Gostei + 0
18/05/2005
Sistemald
mas em updatesql, insertsql e deletesql, montei em cima da principal(cep_rua), tem algum proble nisto.
Explicando melhor:
SelectSql:
select * from V_CEP
modifysql:
UPDATE CEP_RUA SET CODIGO = :CODIGO, CEP = :CEP, TIPO_CODIGO = :TIPO_CODIGO, NOME = :NOME, BAIRRO_CODIGO = :BAIRRO_CODIGO, CIDADE_CODIGO = :CIDADE_CODIGO, UF_CODIGO = :UF_CODIGO WHERE CODIGO = :OLD_CODIGO
InsertSql
INSERT INTO CEP_RUA (CODIGO, CEP, TIPO_CODIGO, NOME, BAIRRO_CODIGO, CIDADE_CODIGO, UF_CODIGO) VALUES (:CODIGO, :CEP, :TIPO_CODIGO, :NOME, :BAIRRO_CODIGO, :CIDADE_CODIGO, :UF_CODIGO)
DeleteSQL
DELETE FROM CEP_RUA WHERE CODIGO = :OLD_CODIGO
Gostei + 0
18/05/2005
Gandalf.nho
Gostei + 0
18/05/2005
Sistemald
Gostei + 0
19/05/2005
Sistemald
Gostei + 0
19/05/2005
Gandalf.nho
Vc montou a sua view exatamente como a query do post inicial?
Gostei + 0
19/05/2005
Sistemald
AS begin INSERT INTO Cep_rua VALUES(NEW.codigo, NEW.cep, NEW.tipo_codigo, NEW.NOME, NEW.bairro_codigo, NEW.cidade_codigo, NEW.uf_codigo); end
Escrive ela no IBExpert, o erro foi ao chamar o metodo POST do MDODataSet, no comando inset acima esta na ordem correta.
Gostei + 0
19/05/2005
Sistemald
INSERT INTO V_CEP (CODIGO, CEP, TIPO_CODIGO, NOME, BAIRRO_CODIGO, CIDADE_CODIGO, UF_CODIGO) VALUES (:CODIGO, :CEP, :TIPO_CODIGO, :NOME, :BAIRRO_CODIGO, :CIDADE_CODIGO, :UF_CODIGO)
Coloquei apenas os campos que fazem parte da tabela CEP_RUA.
Gostei + 0
20/05/2005
Gandalf.nho
Gostei + 0
20/05/2005
Sistemald
Gostei + 0
20/05/2005
Sistemald
Gostei + 0
20/05/2005
Sistemald
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)