Procedures Insert
14/09/2014
0
Tenho uma tabela Consulta que tem como chave estrangeira o IdPaciente
Estou criando as procedures de Insert para me ajudarem quando fizer a interface.
Na procedure de InsertConsulta passo como parâmetro todos os atributos da tabela Consulta apenas ou devo passar os atributos da tabela Paciente.
Pergunto isto porque estou já pensando na parte da interface, pois ao inserir uma nova consulta tenho de ter primeiramente um paciente.
Talvez esteja baralhando tudo, mas nunca fiz nada de interface e portanto não sei o que devo fazer primeiro na parte de Sql Management Studio, para então depois iniciar a parte gráfica.
Obrigado mais uma vez.
Guilherme
Posts
14/09/2014
William
Tenho uma tabela Consulta que tem como chave estrangeira o IdPaciente
Guilherme na sua pergunta já tem a resposta, se você já tem o campo que faz referência a tabela paciente então basta inserir na tabela consulta o id do paciente, posteriormente quando você desenvolver a tela para trazer os dados da consulta apenas tem que fazer um JOIN para cruzar os dados do paciente com o idPaciente que está gravado nas consultas.
14/09/2014
Mariana Carvalho
15/09/2014
Guilherme
CREATE PROCEDURE spInsertConsulta @IdPaciente INT, @Data DATE, @Tratamento VARCHAR(MAX) AS BEGIN INSERT INTO Consulta VALUES(@IdPaciente, @Data, @Tratamento) END
Assim basta?
Mariana eu estou ainda fazendo a parte Sql, mas já pensando no que vou precisar quando fizer as telas.
Daí muitas vezes fique baralhado e sem saber bem o que fazer.
15/09/2014
Joel Rodrigues
O procedure de insert vai receber os campos da sua tabela. Como você mesmo disse, na tabela de consulta tem um campo que é chave estrangeira da tabela de pacientes, então você só precisa inserir esse campo na tabela de consultas. Os demais campos são referentes diretamente à consulta, não ao paciente.
Então, é exatamente assim como você fez.
16/09/2014
Guilherme
Na mesma tabela Paciente tenho o atributo Foto, está correto este codigo para esta procedure?
CREATE Paciente ( IdPaciente INT NOT NULL, Foto IMAGE NOT NULL, Nome VARCHAR(40) )
CREATE PROCEDURE spInsertPaciente @Foto IMAGE, @Nome VARCHAR(20) AS BEGIN SET @Foto = (SELECT * FROM OPENROWSET(BULK N'C:\...\imagem.jpg', SINGLE_BLOB) image); INSERT INTO Paciente VALUES(@Nome, @Foto)
Tem maneira de ver o resultado desta procedure visualmente no sql management studio, não apenas como na tabela Results?
16/09/2014
William
16/09/2014
Guilherme
Como me sugere que faça então?
16/09/2014
William
16/09/2014
Guilherme
É isto que pretendo.
[img]http://arquivo.devmedia.com.br/forum/imagem/371781-20140916-095920.gif[/img]
Dai o atributo Foto ser do tipo IMAGE.
Eu quero puder tirar uma foto com a webcam, ficando guardada numa pasta especifica, e depois puder associar uma imagem a este paciente, ou seja, puder ir a pasta onde guardo as imagens tiradas com a webcam e escolher uma.
É esta sequencia de passos que não sei como implementar na minha Base de Dados
16/09/2014
William
16/09/2014
Guilherme
Ainda no tema de procedures de insert me diga uma coisa.
Tenho as tabelas
A: IdA(PK), IdB(FK pra tabela B), IdC(FK pra tabela C)
B: IdB(PK)
C: IdC(PK)
Ao criar a procedure de insert em A passo os seus 3 atributos.
Contudo, IdB e IdC podem não ter correspondência nas tabelas correspondentes(B e C).
Nesta procedure posso fazer uma condição que, se tal acontecer invoca as procedures de insert dessas tabelas
Assim
CREATE PROCEDURE spInsertA @IdA INT, @IdB INT, @IdC INT AS BEGIN IF(NOT EXISTS(SELECT IdB FROM B WHERE IdB = @IdB)) BEGIN INSERT INTO B VALUES(@IdB); IF(NOT EXISTS(SELECT IdC FROM C WHERE IdC = @IdC)) BEGIN INSERT INTO C VALUES(@IdC); END INSERT INTO A VALUES(@IdA, @IdB, @IdC); END
Clique aqui para fazer login e interagir na Comunidade :)