none
Multiplos Insert com Stored Procedure RRS feed

  • Pergunta

  • Bom dia!

    Estou desenvolvendo um tcc, que tem a parte de cadastra um funcionario.

    no banco de dados, tem 4 tabelas relacionadas com o funcionario, tb_Funcionario, tb_Endereco, tb_DadosPessoais e tb_Login.

    todos os dados são salvos em suas respectivas tabelas, mais não estou conseguindo jogar os id(primary key) das tabelas de dados pessoais, endereço e login, dentro da tabela tb_Funcionario, cujas estao relacionadas.

    estou usando Stored Procedure.

    agradeço a colaboração :D

    sexta-feira, 8 de novembro de 2013 11:20

Todas as Respostas

  • Daweel bom dia,

    Mostre um exemplo de como você esta tentando fazer a operação.

    Att.


    Guilherme Silva Cardoso

    sexta-feira, 8 de novembro de 2013 11:27
  • Olá Daweel!

    Segue exemplo abaixo de como você poderia fazer, não sei se foi bem isso que você pediu!

    CREATE DEFINER=`meubanco`@`%%` PROCEDURE `proc_InserirEmpresa`(
      _RAZAO varchar(50),
      _FANTASIA varchar(50),
    )
    BEGIN
    INSERT INTO meubanco.TB_EMPRESA
    (
    RAZAO,
    FANTASIA,
    )
    VALUES
    (
    _RAZAO,
    _FANTASIA,
        );

    //nesse select vc esta pegando o ultimo ID inserior que no caso foi o cadastro feito agora!

    SELECT LAST_INSERT_ID() INTO @ID;

    //aqui vc esta utilizando o metodo call para chamar outra procedure já passando os parametros, inclusive o ID, utilizando o atributo mesmo @ID

    call proc_InserirEmpreiteiraLog(@ID, _RAZAO, _FANTASIA);

    OBS:

    Todo o código faz parte da procedure que está sendo chamada!

    sexta-feira, 8 de novembro de 2013 11:37
  • ALTER PROCEDURE [dbo].[DadosPessoais] 		
    (
    
        @nome varchar (50),
    	@sexo varchar (50),
    	@rg varchar (50),
    	@cpf varchar (50),	
    	@telefone varchar (50),
    	@email varchar (50),
    	@nasc varchar (50),
    	@foto image
       
    )
    	
    AS
    	insert into tb_DadosPessoais(Nome,Sexo,RG,CPF,Telefone,Email, Nasc, Foto)
    	values (@nome ,	@sexo ,	@rg ,	@cpf ,	@telefone ,	@email, @nasc,  @foto ) select @@IDENTITY
    
    	
    	insert into tb_Funcionario(idDadosPessoais)
    	values (@@IDENTITY)
    
    =================================================================================================================
    
    ALTER PROCEDURE [dbo].[Endereco] 		
    (
    
        @logradouro varchar (50),
    	@numero varchar (50),
    	@complemento varchar (50),
    	@cep varchar (50),
    	@cidade int,
    	@bairro varchar (50)
       
    )
    	
    AS
    	insert into tb_Endereco(Logradouro,Numero,Complemento,Cep,cidade,Bairro)
    	values (@logradouro,@numero,@complemento,@cep,@cidade,@bairro ) select @@IDENTITY
    
    	insert into tb_Funcionario(idEndereco)
    	values (@@IDENTITY)
    
    ====================================================================================================================
    
    ALTER PROCEDURE [dbo].[plogin] 		
    (
    
        @nome     VARCHAR (50) ,
        @usuario VARCHAR(50),
        @senha   VARCHAR(50),
    	@nvpermissao int  
       
    )
    	
    AS
    	insert into login(Nome,usuario,senha,NvPermissao)
    	values (@nome,@usuario,@senha,@nvpermissao) select @@IDENTITY; 
    
    	insert into tb_Funcionario(idLogin)
    	values (@@IDENTITY)
    

     // dados pessoais ..................................................
                                sql = new SqlCommand("DadosPessoais", conexao);
                                sql.CommandType = CommandType.StoredProcedure;
                                sql.Parameters.AddWithValue("@nome", txnomeFu.Text.ToLower());
                                sql.Parameters.AddWithValue("@nasc", mknascFu.Text.ToLower());
                                sql.Parameters.AddWithValue("@rg", txrgFu.Text.ToLower());
                                if (rdFemFu.Checked == true)
                                {
                                    sql.Parameters.AddWithValue("@sexo", rdFemFu.Text.ToLower());
                                }
                                else if (rdmasFu.Checked == true)
                                {
                                    sql.Parameters.AddWithValue("@sexo", rdmasFu.Text.ToLower());
                                }
                                sql.Parameters.AddWithValue("@cpf", txcpfFu.Text);
                                sql.Parameters.AddWithValue("@telefone", mktelFu.Text.ToLower());
                                sql.Parameters.AddWithValue("@email", txemailFu.Text.ToLower());
                                ConverterFoto();                         
                                conexao.Open();
                                int n = sql.ExecuteNonQuery();
                                conexao.Close();
                               
                                // endereco .........................................................
                                sql = new SqlCommand("Endereco", conexao);
                                sql.CommandType = CommandType.StoredProcedure;
                                sql.Parameters.AddWithValue("@logradouro", txlograFu.Text.ToLower());
                                sql.Parameters.AddWithValue("@numero", txnumFu.Text.ToLower());
                                sql.Parameters.AddWithValue("@complemento", txcompleFu.Text.ToLower());
                                sql.Parameters.AddWithValue("@cep", mkcepFu.Text.ToLower());
                                sql.Parameters.AddWithValue("@cidade", cbcidadeFu.SelectedValue);
                                sql.Parameters.AddWithValue("@bairro", txbairroFu.Text.ToLower());                    
                                conexao.Open();
                                int n2 = sql.ExecuteNonQuery();
                                conexao.Close();
                                // login ...........................................................
                                sql = new SqlCommand("plogin", conexao);
                                sql.CommandType = CommandType.StoredProcedure;
                                sql.Parameters.AddWithValue("@nome", txnomeFu.Text.ToLower());
                                sql.Parameters.AddWithValue("@usuario", txusuarioFu.Text.ToLower());
                                sql.Parameters.AddWithValue("@senha", txsenhaFu.Text.ToLower());
                                if (nvl1.Checked == true)
                                {
                                    nvl = 1;
                                    sql.Parameters.AddWithValue("@nvpermissao", nvl);
                                }
                                if (nvl2.Checked == true)
                                {
                                    nvl = 2;
                                    sql.Parameters.AddWithValue("@nvpermissao", nvl);
                                }                          
                                conexao.Open();
                                int n3 = sql.ExecuteNonQuery();
                                conexao.Close();                      
                                if (n > 0 && n3>0)
                                {
                                    MessageBox.Show("Cadastro Realizado com Sucesso!");
                                }
                                else
                                {
                                    MessageBox.Show("Erro no Cadastro!");
                                }


    sexta-feira, 8 de novembro de 2013 12:07