Bom, meu problema é o seguinte , assim, eu tenho 2 tabela (TB_PESSOA e TB_PESSOA_FISICA) na TB_PESSOA tem uma PK ( CD_PESSOA) e CONSEQUENTEMENTE NA TB_PESSOA_FISICA UMA FK.
Bom, o campo CD_PESSOA é IDENTITY e eu tenho uma procedure que faz insert, delete e update dependendo do que for digitado, mas acontece que não consigo atribuir valor na tablea TB_PESSOA_FISICA pois quando eu executo a PROCEDURE os valores que é pra cair na TB_PESSOA cai, porém , os da TB_PESSOA_FISICA não . aqui esta minha procedure :
-- PROCEDURE PRONTA
PROCEDURE SP_TESTE_1
@tipo decimal(10,2),
@email varchar(200),
@cadastro datetime,
@atualizacao datetime,
@bloqueio decimal(10,2),
@ordem char(1),
@nome varchar(200),
@cpf numeric(11),
@rg varchar(20),
@nascimento smalldatetime,
@civil varchar(20),
@sexo varchar(20),
@profissao varchar(45),
@codigo integer
AS
if (@ordem) = 'i' -- insere um registro
begin
if exists(select ds_email from TB_PESSOA where ds_email = @email)
begin
select @email = 'E-MAIL já CADASTRADO'
return (@email)
end
else
begin
select @email = ''
begin transaction
insert into TB_PESSOA
( ds_tipo_pessoa, ds_email, dt_cadastro, dt_atualização, fl_bloqueio)
values
( @tipo, @email, @cadastro, @atualizacao, @bloqueio)
-- set @codigo = @@identity
end
end
else
if (@ordem) = 'u' -- Altera um registro
begin
select @email = ''
begin transaction
update TB_PESSOA set
ds_tipo_pessoa = @tipo,
ds_email = @email,
dt_cadastro = @cadastro,
dt_atualização = @atualizacao,
fl_bloqueio = @bloqueio
where ds_email = @email
end
else
if (@ordem) = 'd' --Exclui um registro
begin
select @email = ''
begin transaction
delete from TB_PESSOA
where ds_email = @email
end
if (@ordem) = 'i_fisica' -- insere um registro
begin
if exists(select ds_nome from TB_PESSOA_FISICA where ds_nome = @nome)
begin
select @nome = 'NOME já EXISTENTE'
return (@nome)
end
else
begin
select @nome = ''
begin transaction
insert into TB_PESSOA_FISICA
(cd_pessoa, ds_nome, nr_cpf, ds_rg, dt_nascimento, tp_estado_civil, tp_sexo, tp_profissao)
values
( @codigo, @nome, @cpf, @rg, @nascimento, @civil, @sexo, @profissao)
-- set @codigo = @@identity
insert into TB_PESSOA
(ds_tipo_pessoa, ds_email, dt_cadastro, dt_atualização, fl_bloqueio)
values
(@tipo, @email, @cadastro, @atualizacao, @bloqueio)
end
end
else
if @@error <> 0
begin
rollback transaction
return(1)
end
else
begin
commit transaction
return(0)
end
Pergunta
Felipe - Iniciante-Delphi
Galera, sou iniciante nesse mundo de T.I
Bom, meu problema é o seguinte , assim, eu tenho 2 tabela (TB_PESSOA e TB_PESSOA_FISICA) na TB_PESSOA tem uma PK ( CD_PESSOA) e CONSEQUENTEMENTE NA TB_PESSOA_FISICA UMA FK.
Bom, o campo CD_PESSOA é IDENTITY e eu tenho uma procedure que faz insert, delete e update dependendo do que for digitado, mas acontece que não consigo atribuir valor na tablea TB_PESSOA_FISICA pois quando eu executo a PROCEDURE os valores que é pra cair na TB_PESSOA cai, porém , os da TB_PESSOA_FISICA não . aqui esta minha procedure :
-- PROCEDURE PRONTA
-- AQUI EU CHAMO A PROCEDUREPor favor, alguém pode me ajudar?
Agradeço desde já,
Obrigado
Link para o comentário
Compartilhar em outros sites
10 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.