SELECT ATUALIZADO

GUARDIAO 15/12/2009 18:33:14
#329775
Pessoal, uma coisa bem estranha esta acontecendo por aqui.
Estou desenvolvendo um sisteminha de cadastro de Livros e estranhamente, uma query só atualiza o conteúdo após fechar o Formulário e abrir novamente.

vejam
Citação:

Dim Conn As New ADODB.Connection, _
rstObj As New ADODB.Recordset

strSQL = [Ô]UPDATE tblLivros SET [Ô] & _
[Ô] strTitulo = [ô][Ô] & strTitulo.Text & [Ô][ô], [Ô] & _
[Ô] WHERE idLivro = [ô][Ô] & idLivro.Text & [Ô][ô];[Ô]

Dim MyConn As New ADODB.Connection
MyConn.Provider = [Ô]Microsoft.Jet.OLEDB.4.0[Ô]
MyConn.Properties([Ô]Data Source[Ô]) = [Ô][Ô] & PATH_DATABASE & [Ô][Ô]
MyConn.Open
MyConn.Execute (strSQL)


[ô]// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
strSQL = [Ô]SELECT * FROM tblLivros [Ô]
Conn.Provider = [Ô]Microsoft.Jet.OLEDB.4.0[Ô]
Conn.Properties([Ô]Data Source[Ô]) = [Ô][Ô] & PATH_DATABASE & [Ô][Ô]
Conn.Open
[ô]rstObj.Open strSQL, Conn, adOpenStatic, adLockOptimistic
rstObj.Open strSQL, Conn, adOpenStatic, adLockReadOnly

Do While Not rstObj.EOF
teste = teste & [Ô]; [Ô] & rstObj([Ô]strTitulo[Ô])
rstObj.MoveNext
Loop



No projeto eu coloquei um BreakPoint logo após o Loop para verificar se atualizou ou não o registro.
Se eu olhar direto no banco de Dados, o registro é atualizado, porém a variável [Ô]teste[Ô] ainda mostra os registros com valores antigos.

Exemplo:
Imaginando que a tabela tem 2 livros cadastrados

1. Chapeuzinho Vermelho
2. Branca de Neve

Daí tem o formulário que exibe os dados do livro 1, (Chapeuzinho Vermelho) e eu quero alterar para Chapeuzinho Verde, digito o texto certinho e clicdo em Salvar que irá executar o código indicado acima. E em seguida com o BreakPoint em execução, vou e olho no Banco de Dados, e vejo que alterou, dai no Toggle Immediate digito:
?teste e aperto [ENTER] e mostra na tela

Chapeuzinho Vermelho; Branca de Neve

que no caso está errado. Alguém saberia me dizer o que pode ser?

EDERMIR 15/12/2009 23:58:06
#329786
O campo IDLIVRO no banco é numérico?

Se for, então mude o update para:
strSQL = [Ô]UPDATE tblLivros SET strTitulo = [ô][Ô] & strTitulo.Text & [Ô][ô] WHERE idLivro = [Ô] & idLivro.Text & [Ô];[Ô]

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