O Modelo Relacional é hoje o principal modelo de dados para aplicações comerciais de processamento de dados. Ele conquistou sua posição de destaque devido à sua simplicidade, que facilita o trabalho do programador, comparando com os modelos de dados anteriores. Este modelo tem como principais conceitos as Relações (tabelas),  Atributos (colunas), Tuplas (linha) e Chaves.
Uma chave em Bases de dados é uma coluna da tabela que permite, para cada linha, identificar essa linha (caso seja a chave primária), ou relacionar com outra tabela no caso da chave estrangeira.
O foco deste post está no processo de obtenção da chave primária de uma tupla para posterior utilização. Os métodos a serem apresentados garantem que o programador tenha acesso à chave da tupla  recém criada, evitando deste modo outros métodos que, de forma errônea, parecem ser a solução deste problema.
  • Stored Procedure e C#
Criação do Procedimento SQL (MS SQL Server):
CREATE PROCEDURE dbo.CadastrarPassageiro
(
@nome nvarchar(50),
/*variavel que armazena a primary key gerada*/
@pk int output
)
AS
INSERT INTO tabPassageiro(nome)
VALUES (@nome)
/*Funcao para retornar a primary key gerada*/
set @pk = SCOPE_IDENTITY()
RETURN
Instruções em C# usando o procedimento SQL:
//Variável para armazenar chave primaria do passageiro
int chavePassageiro = 0;
SqlCommand comando = new SqlCommand();
comando.CommandType = CommandType.StoredProcedure;
comando.CommandText = “[CadastrarPassageiro]”;
comando.Parameters.AddWithValue(“@nome”, passageiroTxt.Text);
//Obter a chave primaria
comando.Parameters.Add(“@pk”, SqlDbType.Int, 0, “idPassageiro”);
comando.Parameters[“@pk”].Direction = ParameterDirection.Output;
comando.Connection = con.con();
comando.ExecuteNonQuery();
//Atribuicao do valor da chave primaria devolvida pelo procedimento
chavePassageiro = (int)comando.Parameters[“@pk”].Value;
Anúncios