Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

pedrovisk

Procurar na tabela antes de Excluir registro

Recommended Posts

OLÁ GALERA!

 

TO COM UM SENHOR ABACAXI DAQUELES. TENHO 2 TABELAS: PACIENTES_ALTO_CUSTO E OCORRENCIAS, OCORRENCIAS TA LIGADO A PACIENTES_ALTO_CUSTO PELA CHAVE (IDOCORRENCIA). QUANDO EU TENTO DELETAR UM REGISTRO (PACIENTE) ELE NÃO DEIXA, POIS HA OCORRENCIAS REGISTRADAS PARA AQUELE PACIENTE E A PAGINA RETORNO UMA MENSAGEM DE ERRO:

 

Error Type:

(0x80040E2F)

/CamedNet/Auditoria/ac/Cadastros/Cadastro_Paciente.asp, line 45

 

 

Browser Type:

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)

 

Page:

POST 90 bytes to /CamedNet/Auditoria/ac/Cadastros/Cadastro_Paciente.asp

 

POST Data:

beneficiario=106585&prestador=21554&NumeroAutorizacao=308539&DataIntInicial=22%2F06%2F2003

 

E RODO A CONSULTA NO QUERY ANALYZER E ELE RETORNA:

 

DELETE statement conflicted with COLUMN REFERENCE constraint 'FK_Ocorrencia_Paciente_AltoCusto'. The conflict occurred in database 'Auditoria', table 'OcorrenciaNew', column 'IdAltoCusto'.

The statement has been terminated.

 

ALGUEM PODE MIM AJUDAR A CRIAR UMA ROTINA PARA AO CLICAR NO BOTAO "EXCLUIR" RETONAR UMA MENSAGEM QUE DEVERA REMOVER PRIMEIRO AS OCORRENCIAS E DEPOIS EXCLUIR O PACIENTE.

 

OBRIGADO AMIGOS!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

pedrovisk Não sei direito, mas vou arriscar. Procure deletar o seu registro da sua tabela primaria. Pois os dados estão sendo relacionados dela. abraços w.silva

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra você conseguir excluir um Registro (PACIENTE), primeiro terá que excluir um ou todos os registros (OCORRENCIA) que existem relacionados para aquele registro (PACIENTE)...qualquer coisa manda ae

Compartilhar este post


Link para o post
Compartilhar em outros sites

TA OK GALERA, MAS NAO EXISTE UMA MANEIRA DE EU PROCURAR NA TABELA E CASO EXISTA OCORRENCIAS PARA AQUELA PACIENTE E MOSTRAR UMA MENSAGEM PEDINDO PARA EXCLUIR PRIMEIRO AS OCORRENCIAS E CASO NAO EXISTA ELE REMOVA DE IMEDIATO.

 

VEJA A PARTE DO CODIGO QUE TRATO ISSO:

 

NaoPodeExcluir = False

If Request("Pro") = 2 Then

Set RsExcluir = Application("conAuditoria").Execute("Select IdOcorrencia From dbo.OcorrenciaNew Where IdAltoCusto = " & Request("IdAltoCusto"))

NaoPodeExcluir = Not RsExcluir.EOF

Response.Write "você DEVE EXCLUIR AS OCORRENCIAS ANTES DESSE PROCEDIMENTO"

Else

SQL = "DELETE FROM AltoCustoNew WHERE IdAltoCusto = " & Request("IdAltoCusto")

'RESPONSE.WRITE SQL

'RESPONSE.END

Set Rs = Application("conAuditoria").Execute(SQL)

call LimparCamposSession

If Session("Mensagem") = True Then

Session.Abandon

Else

Session("Mensagem") = "Registro removido com Sucesso ! "

Response.AddHeader "REFRESH","3;URL=" & Application("UrlIntranet") & "Auditoria/Ac/Cadastros/Cadastro_Paciente.asp"

End If

End If

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,Vamos lá.....Entre no Enterprise Manager e e visualize o relacionamento das tabelas, nas opções da tabela.Lá você vai encontrar 5 tipos de relacionamentos.As que nos interessam são as duas últimas"Cascade Update Related Fields""Cascade Delete Related Fields"Que fazem exatamento o que dizem....."Atualizar em cascata os dados relacionados""Excluir em cascata os dados relacionados"Ou seja,Para que os registro sejam excluídos automaticamente da tabela relacionada, basta que você marque a opção "Cascade Delete Related Fields"no relacionamento.OK ???Qualquer dúvida é só postar que a gente te ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.