Ir para conteúdo
Fórum Script Brasil
  • 0

Atualizar registro MySql


rafaelcpcunha

Pergunta

Salve à todos,

Estou com dificuldade de encontrar na net referencias de como atualizar um registro de uma tabela mysql via vb6.

Mas só posso atualizar o registro de tal ID.

Seguinte, em um laboratório que até então eu pegava as informações de cada estação via arquivo texto. Por meio de um frontend em vb6 que mandava pela rede os arquivos à um "servidor". Porém agora resolvi colocar direto no mysql.

Gravo com esse trecho de código:

...
sql = "SELECT * FROM alunos"
myCon.Open "DSN=server_spi"
With myCmd
      .ActiveConnection = myCon
      .CommandType = adCmdText
      .CommandText = sql
End With
With myRS
   .LockType = adLockPessimistic
   .CursorType = adOpenKeyset
   .CursorLocation = adUseClient
   .Open myCmd
End With
myRS.AddNew
myRS!user = Environ$("nwusername")
myRS!contexto = contexto
myRS!dlogin = Format$(Date, "dd/mm/yy")
myRS!hlogin = Format$(Time, "hh:mm")
myRS!maquina = sockMain.LocalHostName
myRS!workgroup = wg
myRS!maquinaip = sockMain.LocalIP
myRS!pcnum = pcnum
myRS!duvida = ""
myRS.Update
...

Notem que o registro "duvida" é escrito em branco, e caso o aluno escreva algo em um textbox é salvo nesse registro. Porém ele tem que salvar na duvida do aluno (ID).

Concluo que tem q se ler o ID, para saber em qual duvida gravar.

Desde já agradeço qualquer luz

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Olá rafaelcpcunha !

Cara, não sou expert...mas se eu souber e puder ajudar conte comigo... :rolleyes:

Seguinte...

Se tú vai "atualizar" o registro de acordo com a "ID" do aluno, então terá de mudar o comando SQL...pois como está ela vai incluir um novo registro.

As linhas que suponho precisar alterar são estas:

Onde é:

sql = "SELECT * FROM alunos"
' Mude para :
sql = "SELECT * FROM alunos WHERE ID_Aluno =" & var_ID
Estou supondo que o nome da Coluna onde fica as ID's é "ID_Aluno" e a variável que aloca o número é do tipo "Inteiro" (Integer) nomeada "var_ID"; Apague a linha:
myRS.AddNew
Quanto ao campo "Duvida", não faço dessa maneira...quando estou criando a tabela no MySQL a configuro para aceitar valores "NULL", ou seja, vazio. E no código simplesmente aponto o campo para receber o valor do Textbox em questão:
myRS!duvida = txtDuvida.Text

Se o usuário digitar algo, será salvo o conteúdo; senão, o banco encarrega-se de deixar o campo salvo como NULL (vazio).

Se não funcionar avisa que recentemente desenvolvi (para uso pessoal) um sisteminha com BD em MySQL.

VALEU ! Legal.gif

Editado por Danleonhart
Link para o comentário
Compartilhar em outros sites

  • 0

Olá

Imagino que eu não soube explicar o que tenho.

Atualmente o aluno se loga e é exibido à ele uma janela com alguns dizeres e uma textbox (janela que roda por baixo dos panos essa rotina mostrada), e até então o textbox de dúvidas fica em branco. Apenas se o aluno posta alguma coisa é salvo no registro, caso contrário fica em branco. Alunos que postam são 5%, nem isso.

A rotina esta fazendo bem seu trabalho, quero apenas que se caso o aluno preencha o campo, que atualize o registro no banco.

Mas nas últimas hipóteses vou criar um banco só para dúvidas.

Att.

Link para o comentário
Compartilhar em outros sites

  • 0

É isso mesmo rafaelcpcunha...

Ao invés de colocar para inserir um novo registro, simplesmente você coloca para atualizar...

e se a caixa de texto fica vazia ou com texto, a rotina de "UPDATE" é que vai encarregar-se de atualizar o campo...então, não importa como estará a caixa de texto, do jeito que estiver será alterada no banco (vazia ou com texto).

Qual o nome da caixa de texto ??? lembre-se de apontar ela como referência para atualização do campo "myRS!duvida".

VALEU !

Link para o comentário
Compartilhar em outros sites

  • 0

Valeu !

Mas teu código fica assim:

...

' Se a ID for um valor do tipo Inteiro...se for String é : sql = "SELECT * FROM alunos WHERE ID_Aluno='" & v_ID "'"
sql = "SELECT * FROM alunos WHERE ID_Aluno=" & v_ID
myCon.Open "DSN=server_spi"
With myCmd
      .ActiveConnection = myCon
      .CommandType = adCmdText
      .CommandText = sql
End With
With myRS
   .LockType = adLockPessimistic
   .CursorType = adOpenKeyset
   .CursorLocation = adUseClient
   .Open myCmd
End With

myRS!user = Environ$("nwusername")
myRS!contexto = contexto
myRS!dlogin = Format$(Date, "dd/mm/yy")
myRS!hlogin = Format$(Time, "hh:mm")
myRS!maquina = sockMain.LocalHostName
myRS!workgroup = wg
myRS!maquinaip = sockMain.LocalIP
myRS!pcnum = pcnum
myRS!duvida = txtDuvida.Text
myRS.Update
...

Porque se você salva como vazio, como que o aluno vai ter a decisão de colocar a dúvida ???

Assim vai depender dele...se colocar algo, é salvo...senão, fica salvo como "NULL" no banco ( se você tiver configurado no Banco para o campo aceitar NULL).

:rolleyes:

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...