HELP COM ESSE DO WHILE PLEASE?
Oi pessoal beleza, então não estou conseguindo fazer um negócio, eu tenho uma tabela chamada wmoddetprod, que possuem varios códigos,
ai preciso pegar e salvar todos esses códigos em outra tabela ai fiz a estrutura abaixo:
Só que o que não estou conseguindo fazer é para quando o código ja existir lá na tabela z_parametros ele não duplique, resumindo que ele saia do insert e pule pro próximo registro reader.NextResult e pular o Insert.. como devo proceder?? agradeço
ai preciso pegar e salvar todos esses códigos em outra tabela ai fiz a estrutura abaixo:
Try
Dim sql As String
sql = [Ô]SELECT CODIGO FROM wmoddetprod[Ô]
objConexao.Open()
Dim objMysqlCommand As New MySqlCommand(sql, objConexao)
Dim reader As MySqlDataReader = objMysqlCommand.ExecuteReader()
If (reader.Read()) Then
Do While reader.Read
Codigo = reader!Codigo
sql = [Ô]INSERT INTO z_parametros(codigo) VALUES([ô][Ô] & Codigo & [Ô][ô])[Ô]
Banco.ExecutaQuery(sql)
Loop
reader.NextResult()
End If
AtualizarProgress.Caption = [Ô]Dados Atualizados com Sucesso![Ô]
AtualizarProgress.Description = [Ô]Os Códigos dos Ensaios foram Atualizados![Ô]
Catch ex As Exception
Finally
objConexao.Close()
End Try
Só que o que não estou conseguindo fazer é para quando o código ja existir lá na tabela z_parametros ele não duplique, resumindo que ele saia do insert e pule pro próximo registro reader.NextResult e pular o Insert.. como devo proceder?? agradeço
Mestre,
Depois de
E Antes de:
Você precisa fazer algo do tipo:
Para verificar se NÃO retorna nenhum registro antes de gravar.
Se retornar, pule com um IF este pedaço:
[][ô]s,
Tunusat.
Depois de
Codigo = reader!Codigo
E Antes de:
sql = [Ô]INSERT INTO z_parametros(codigo) VALUES([ô][Ô] & Codigo & [Ô][ô])[Ô]
Banco.ExecutaQuery(sql)
Você precisa fazer algo do tipo:
sqlApoio = [Ô]SELECT top 1 codigo FROM z_parametros WHERE codigo = [Ô] & codigo
Para verificar se NÃO retorna nenhum registro antes de gravar.
Se retornar, pule com um IF este pedaço:
sql = [Ô]INSERT INTO z_parametros(codigo) VALUES([ô][Ô] & Codigo & [Ô][ô])[Ô]
Banco.ExecutaQuery(sql)
[][ô]s,
Tunusat.
opa Tunusat vlw mais como recebo os dados depois do select estou tentando criar um 2° data reader mais nao ta indo nao
tentei assim
tentei assim
Dim reader As MySqlDataReader = objMysqlCommand.ExecuteReader()
Dim reader2 As MySqlDataReader = objMysqlCommand2.ExecuteReader
Do While reader.Read
Codigo = reader!Codigo
sql2 = [Ô]SELECT codigo FROM z_parametros WHERE codigo = [ô][Ô] & Codigo & [Ô][ô][Ô]
Banco.ExecutaQuery2(sql2)
If Not reader2.Read() Then
sql = [Ô]INSERT INTO z_parametros(codigo) VALUES([ô][Ô] & Codigo & [Ô][ô])[Ô]
Banco.ExecutaQuery(sql)
End If
Loop
reader.NextResult()
precisa ser assim mesmo?
Pq nao faz isso em um procedimento só? um
insert select!
http://dev.mysql.com/doc/refman/5.0/en/insert-select.html
Pq nao faz isso em um procedimento só? um
insert select!
http://dev.mysql.com/doc/refman/5.0/en/insert-select.html
Tente isso
Try
Dim sql As String = [Ô][Ô]
sql &= [Ô]INSERT INTO Z_PARAMETROS (CODIGO)[Ô]
sql &= [Ô] SELECT A.CODIGO[Ô]
sql &= [Ô] FROM WMODDETPROD A[Ô]
sql &= [Ô] LEFT JOIN Z_PARAMETROS B ON (B.CODIGO = A.CODIGO)[Ô]
sql &= [Ô] WHERE B.CODIGO IS NULL[Ô]
sql &= [Ô] ORDER BY A.CODIGO[Ô] [ô]Caso queira ordenar os códigos
objConexao.Open()
Dim objMysqlCommand As New MySqlCommand(sql, objConexao)
Dim LinhasAfetadas As Long = objMysqlCommand.ExecuteNonQuery()
If LinhasAfetadas > 0 Then
AtualizarProgress.Caption = [Ô]Dados Atualizados com Sucesso![Ô]
AtualizarProgress.Description = [Ô]Os Códigos dos Ensaios foram Atualizados![Ô]
Else
AtualizarProgress.Caption = [Ô]Dados não atualizados devido não encontrar nenhum código novo![Ô]
AtualizarProgress.Description = [Ô]Códigos não encontrados![Ô]
End If
Catch ex As Exception
MessageBox.Show([Ô]Erro:[Ô] & Environment.NewLine() & ex.Message(), [Ô]Erro[Ô])
Finally
objConexao.Close()
End Try
FILMAN,
Bem melhor! Valew!
[][ô]s,
Tunusat.
Bem melhor! Valew!
[][ô]s,
Tunusat.
valeu galera voces sao demais
Tópico encerrado , respostas não são mais permitidas