Trabalhando com Banco de Dados

Sistema ADMC - O Cadastro de Produtos -
Conceito - Chave Estrangeira

Continuando com validações vamos implementar em nosso sistema o conceito de chave estrangeira.

Podemos notar que pela estrutura de nossas tabelas Produtos e Fornecedores as mesmas estão relacionadas pelos campos proForCodigo e ForCodigo, criando assim a possibilidade de implementarmos em nosso programa uma chave estrangeira.

Para isso precisamos carregar a tabela de fornecedores em nosso DataSet, já criado, para isso acrescente as seguintes linhas (somente as marcadas em Negrito):

' Declarações a nível de classe (visiveis)
'
Private oDataAdapter As oledbDataAdapter
Private oCb As OleDbCommand
Private oDataSet As DataSet
Private oBind As BindingManagerBase
Private iRegProdutos as Integer
Private daFornecedores As OledbDataAdapter
Private ocbFornecedores As OledbCommand

 

No evento FormLoad inclua as seguintes linhas (Marcadas em negrito)

'Cria o Adaptador / Sql
Dim sqlProdutos As String = "SELECT * FROM tabProdutos"
Me.oDataAdapter = New OleDbDataAdapter(sqlProdutos, oCnn)
daFornecedores = New OleDbDataAdapter("SELECT * FROM tabFornecedores", oCnn)

...

'Cria o ComandBuilder Executa o SQL
Dim oCB = New OleDbCommandBuilder(oDataAdapter)
Dim oCBFornecedores = New OleDbCommandBuilder(daFornecedores)

...

'Criar o DataSet
oDataSet= New DataSet()
oDataAdapter.Fill(oDataSet, "tabProdutos")
daFornecedores.Fill(oDataSet, "tabFornecedores")

...

' Cria o vetor da chave primária
Dim ChavePrimariaProdutos(1) As DataColumn
Dim chave_est_fornecedores As foreignkeyConstraint

' Cria a chave estrangeira - validando o codigo do fornecedor
chave_est_fornecedores = New ForeignKeyConstraint("FK", _
oDataSet.Tables("tabFornecedores").Columns("ForCodigo"), _
oDataSet.Tables("tabProdutos").Columns("proForCodigo"))


oDataSet.Tables("tabProdutos").Constraints.Add(chave_est_fornecedores)
oDataSet.EnforceConstraints = True

Se você fez tudo certinho, ao tentar incluir um código de fornecedor que não existe na tabela de fornecedores vai receber um aviso de erro.

Isso vai garantir a integridade do seu banco de dados, evitando que exista um produto com código de fornecedor invalido.

 

 


Dicas:

Ir para: Aula anterior | Proxima aula | Indice de Aulas

 

 

Escreva para nós  Adicione ao Favoritos  Página Principal   Imprima essa página  Sair da Página  Voltar para página anterior

© 1999-2009 POWER Informática - Rua João Manoel, 912 - Centro - Santana do Livramento - RS
Fones: (55) 3 2 4 2 - 5 4 2 7 / (55) 9 9 9 4 - 8 7 8 2

Serviços Manutenção Hardware, programação, páginas Web