ERRO AO GRAVAR ALTERACAO

BYDUMORAES 02/06/2005 11:01:18
#86506
Preciso de mais uma ajuda de vcs, o seguinte no meu form se navego nos registros atraves dos botoes ANTERIOR e PROXIMO consigo alterar normalmente o registro, mas se uso uma busca atraves de um inputbox ou digitando o codigo e clicando em um botao para mostrar os dados nao consigo alterar da o seguinte erro:

Erro: 3251 O conjunto de registros atual nao oferece suporte para atualizacao. Isso pode ser uma limitacao do provedor ou do tipo de bloqueio selecionado.

estou usando a seguinte linha de conexao:

rs.Open "Select * from tabela", cnn, 3, 3

em alguns casos to usando: rs.Open "Select * from agendamento", cnn,1, 3

mas isso esta ocorrendo em todos os forms que faco consulta pelo inputbox e tento alterar.

TRUHILLO 02/06/2005 11:09:34
#86509
Como vc abriu o banco de dados?
Post a string de conexão.
Provavelmente tah aberto como somente-leitura.
USUARIO.EXCLUIDOS 02/06/2005 11:10:52
#86510
Não falta a instrução de atualizar o banco de dados após a consulta ?

ex: rs.refresh

Após a consulta
BYDUMORAES 02/06/2005 11:14:26
#86513
rs.Open "Select * from tabela", cnn, 3, 3
USUARIO.EXCLUIDOS 02/06/2005 11:38:18
#86517
Qual a CONNECTIONSTRING CNN?

Esta string aqui está certa:

rs.Open "Select * from agendamento", cnn,1, 3 


Ele abre como KEYSET e travamento OTIMISTA, a tabela fica em LEITURA e GRAVAÇÃO o tempo todo.

Derepente, na hora de abrir a conexão está o erro.
BYDUMORAES 02/06/2005 11:52:52
#86522
Set cnn = New ADODB.Connection
Set rs = New ADODB.Recordset

cnn.CursorLocation = adUseClient

cnn.Open "Provider=sqloledb;" ....

Citação:

NEO_VR escreveu:
Qual a CONNECTIONSTRING CNN?

Esta string aqui está certa:

rs.Open [Ô]Select * from agendamento[Ô], cnn,1, 3 


Ele abre como KEYSET e travamento OTIMISTA, a tabela fica em LEITURA e GRAVAÇÃO o tempo todo.

Derepente, na hora de abrir a conexão está o erro.

USUARIO.EXCLUIDOS 02/06/2005 11:57:31
#86525
Vc está usando o mesmo recordset pra efetuar a busca e para fazer a manutenção na tabela?

Tipo, vc dá um .CLOSE na hora de fazer a busca, e abre novamente com o critério especificado?

Defina um RECORDSET SOMENTE PARA A TELA DE BUSCA, e abre e fecha ele quando o registro for encontrado (ou não)... Trabalhe com Recordsets separados, um para ler e gravar na tabela, e outro para fazer a busca...
USUARIO.EXCLUIDOS 06/06/2005 22:21:24
#87368
vc ta tendo probelma com o indece da tabela sempre que vc for incluir ou altera vc tem que falar qual indece vc esta usando, uma boa dica é sempre que vc for altera faça uma busca por codigo que elimina totalmente os error exemplo:

no alterar
tabela.Index = "primarykey"
tabela.MoveFirst
tabela.Seek "=", txtcodigo 'aqui vc coloca a text referente ao indece
dai por diante é so continuar a rotina de alteração
FABIO.ALEXANDRE 06/06/2005 23:00:49
#87370
BOM
POSTA O CÓ“DIGO DO MOMENTO DO FILTRO ATé A ALTERAÇÃO
PELA MENSSAGEM é TIPO CURSOR Q VC USA NA HORA Q VAI ALTERAR

TENTA UTILIZAR O COMANDO UPDATE NA TUA CONEXÃO DE STRING

CNN.EXECUTE "UPDATE TABELA SET CAMPO=VALOR WHERE CAMPOFILTRO=" & VALOR


ESPERO TER AJUDADO
Tópico encerrado , respostas não são mais permitidas