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

Problemas Para Atualizar Registro


Musashi_RS

Pergunta

Olá, estou enfrentandoproblemas para salvar um registro. Antes eu utilizava o método Opens do recordset, mas agora estou fazendo o seguinte:

set rs = cnn.Execute(SQL)

Por exemplo, quando eu faço essa consulta, o recordset armazena os dados requisitados na query sql, certo? Por exemplo, se eu fizer:

Inicio uma vez o recordset:

Set rs = New ADODB.Recordset (Se eu não fechá-lo, eu não preciso mais iniciá-lo, certo?)

Depois, quando for pesquisar um cliente, por exemplo:

SQL = "SELECT * FROM TabelaClientes"

set rs = cnn.Execute(SQL)

SQL = ""

Agora o recordset estaria aberto, com todos os dados armaxenados nelee, certo?

Então, no caso de uma pesquisa como acima, o recordset acharia apenas um registro, no caso o cliente que foi pesquisado.

Eu poderia alterar ou deletá-lo com um simples comando (rs.update ou rs.delet) certo?

Eu preciso usar o método Close do recordset depois desse tipo de consulta? Se sim, eu preciso iniciá-lo novamente?

Ou estou errado?

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

acontece q fazendo assim:

set rs = cnn.Execute(SQL)
ele abre o RecordSet mas não te da permissao pra Update ou Delete nele, já q esse comando seta o LockType como ReadOnly. você so poude usar o comando Update e o Delete abrindo o RecordSet pelo comando Open mesmo. nesse caso o q costumamos fazer seria tipo isso:
SQL = "SELECT * FROM TabelaClientes"
set rs = cnn.Execute(SQL)

'------------
'Pra Update
SQL = "Update TabelaClientes Set Campo = 'valor' Where Codigo = " & rs!Codigo
cnn.Execute SQL

'------------
'Pra Excluir
SQL = "Delete From TabelaClientes Where Codigo = " & rs!Codigo
cnn.Execute SQL[/code]

Link para o comentário
Compartilhar em outros sites

  • 0

Ahhh bom, agora sim as coisas fazem sentido. Bah quebrei cabeça...

Uma pergunta: qual a diferença entre as instruções:

set rs = cnn.Execute(SQL)

e

cnn.Execute SQL

Quanto às instruções para Update e Delete, eu vi que para Update é só para alterar, pelo que vi. Mas como fica para adicionar um novo registro, tipo, se usa o AddNew? Como fica o critério para o Update? O.o

E mais uma cois: eu estou iniciando o recordset no evento Load do form de consulta. Eu não preciso iniciá-lo mais, certo???? E também não preciso utilizar o método Close depois de cada consulta, certo?

vlw

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

  • 0

OK.

Quanto às instruções para Update e Delete, eu vi que para Update é só para alterar, pelo que vi. Mas como fica para adicionar um novo registro, tipo, se usa o AddNew? Como fica o critério para o Update? O.o

E mais uma cois: eu estou iniciando o recordset no evento Load do form de consulta. Eu não preciso iniciá-lo mais, certo???? E também não preciso utilizar o método Close depois de cada consulta, certo?

Link para o comentário
Compartilhar em outros sites

  • 0
Quanto às instruções para Update e Delete, eu vi que para Update é só para alterar, pelo que vi. Mas como fica para adicionar um novo registro, tipo, se usa o AddNew? Como fica o critério para o Update? O.o

você so pode usar o AddNew se o RecordSet estiver aberto e você tiver permissao pra isso de acordo com o LockType e o CursorType. ou seja, pelo q eu disse aqui:

ele abre o RecordSet mas não te da permissao pra Update ou Delete nele, já q esse comando seta o LockType como ReadOnly.

você não vai poder. se você abrir pelo metodo Open (e passar os parametros corretos pra ter as permissoes), é só você usar o metodo AddNew, em seguida passar os valores pros campos e ai usar o Update.

mas independente do RecordSet, você pode fazer o Insert por query assim como o Update e o Delete:

SQL = "Insert Into TabelaClientes (Campo1, Campo2) Values(Valor1, Valor2)"
cnn.Execute SQL[/code]

você não precisa de RecordSet pra executar querys no banco. você so precisa dele pra armazenar os registros q forem retornados (caso algum seja retornado, ou seja, apenas no caso de Select).

E mais uma cois: eu estou iniciando o recordset no evento Load do form de consulta. Eu não preciso iniciá-lo mais, certo????

só vai precisar se em algum momento você fizer Set RS = Nothing. já q esse comando zera o RecordSet e os RecordSets, assim como qualquer outro objeto, só podem ser usados depois de (re)inicializados.

E também não preciso utilizar o método Close depois de cada consulta, certo?

só se você quiser. acho q usando o Close ele deve liberar os registros do Select da memoria, então se você achar interessante pode usar a vontade.

Editado por kuroi
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,2k
    • Posts
      652k
×
×
  • Criar Novo...