PROBLEMA PK COMPOSTA MYSQL E DELETE TRIGGER?
Citação::
Tudo que você tem à fazer é adicionar um campo na tabela de itens que vai conter o número do orçamento [Ô]pai[Ô] que é essa tabela. Quando gravar o orçamento e seus itens, grave na tabela de itens o código do orçamento [Ô]pai[Ô]. Como suspeitava, seu problema é de estrutura de dados.
Já está gravando, na tabela itens os campos Numero,Mes,Ano são iguais aos campos Codigo(Numero),Mes,Ano da tabela orcamento..
Porém não entendi o porque a chave primaria composta funcionar na tabela Orcamentos e não funcionar na tabela Itens, por mais que esteja errado como eu falei utilizar o Itens em AUTO_INC como esta sendo feito no Codigo da Orcamento..
Porem não vejo necessidade de criar outra PK AUTO_INC pra numerar orcamento já que o proprio numero de orcamento ja é unico e uma AUTO_INC composta de Codigo (sequencial), Mes e Ano..
Então o campo número da tabela de orçamento NÃO é único, ele é composto.
Citação::
Então o campo número da tabela de orçamento NÃO é único, ele é composto.
depende do ponto de vista ..
referente a questão de excluir ITEM fiz um exemplo rapido de teste apenas, porem não teria como fazer com trigger algo melhor? está funcional porém né se alguem saber alguma forma melhor de fazer isso aqui ..
segue abaixo:
Dim contador As Integer = 0
Dim novoItem As Integer = 0
Dim antigoItem As Integer = 0
Try
Dim sql As String
sql = [Ô]SELECT ITEM FROM ordemservicocotacaoitem_hc WHERE Numero=[ô][Ô] & txtCodCot.Text & [Ô][ô] AND Mes=[ô][Ô] & txtCot.Text & [Ô][ô] AND Ano=[ô][Ô] & txtAnoCot.Text & [Ô][ô][Ô]
objConexao.Open()
Dim objMysqlCommand As New MySqlCommand(sql, objConexao)
Dim reader As MySqlDataReader = objMysqlCommand.ExecuteReader()
While reader.Read
If reader!ITEM > itemDeletado Then
antigoItem = reader!ITEM
novoItem = reader!ITEM - 1
sql = [Ô]UPDATE ordemservicocotacaoitem_hc SET ITEM=[ô][Ô] & novoItem & [Ô][ô] WHERE Numero=[ô][Ô] & txtCodCot.Text & [Ô][ô] AND Mes=[ô][Ô] & txtCot.Text & [Ô][ô] AND Ano=[ô][Ô] & txtAnoCot.Text & [Ô][ô] AND ITEM=[ô][Ô] & antigoItem & [Ô][ô][Ô]
Banco.ExecutaQuery(sql)
End If
contador = contador + 1
End While
objConexao.Close()
reader.Close()
Catch ex As Exception
MsgBox(ex.ToString)
Finally
objConexao.Close()
End Try
Tópico encerrado , respostas não são mais permitidas