INDICE E SEEK NO MYSQL
Ola galera do vbMania Blz! Estou com um problema. Estou tentando conectar em um db Mysql da seguinte forma:
Global Conexao As New ADODB.Connection
Global TbUsuarios As New ADODB.Recordset
Public Function ConectaAoDBCadastros()
Dim strConexao As String
[ô]Ligação com Banco de Dados
strConexao = [Ô]DRIVER={MySQL ODBC 5.1 Driver};[Ô]
strConexao = strConexao & [Ô]SERVER=localhost;[Ô]
strConexao = strConexao & [Ô]USER=root;[Ô]
strConexao = strConexao & [Ô]PWD=minhasenha;[Ô]
strConexao = strConexao & [Ô]database=meudb[Ô]
Conexao.Open strConexao [ô]Abre o Banco de Dados
Conexao.CursorLocation = adUseClient
End Function
Sub ConectaaTabelaUsuario()
[ô]Conecta a tabela Usuario
TbUsuarios.Open [Ô]Select * from Usuarios[Ô], Conexao, adOpenKeyset, adLockOptimistic
TbUsuarios.Index = [Ô]indice[Ô]
TbUsuarios.Seek [Ô]=[Ô], Val(lstUsuario.ItemData(lstUsuario.ListIndex))
End Sub
ta retornado um erro
run-time error [Ô]3251[Ô]
o provedor atual não oferece suportepara a interface necessaria
à funcionalidade Ãndice
o que eu faço para isso funcionar alguem pode me ajudar. desde já agradeço
Global Conexao As New ADODB.Connection
Global TbUsuarios As New ADODB.Recordset
Public Function ConectaAoDBCadastros()
Dim strConexao As String
[ô]Ligação com Banco de Dados
strConexao = [Ô]DRIVER={MySQL ODBC 5.1 Driver};[Ô]
strConexao = strConexao & [Ô]SERVER=localhost;[Ô]
strConexao = strConexao & [Ô]USER=root;[Ô]
strConexao = strConexao & [Ô]PWD=minhasenha;[Ô]
strConexao = strConexao & [Ô]database=meudb[Ô]
Conexao.Open strConexao [ô]Abre o Banco de Dados
Conexao.CursorLocation = adUseClient
End Function
Sub ConectaaTabelaUsuario()
[ô]Conecta a tabela Usuario
TbUsuarios.Open [Ô]Select * from Usuarios[Ô], Conexao, adOpenKeyset, adLockOptimistic
TbUsuarios.Index = [Ô]indice[Ô]
TbUsuarios.Seek [Ô]=[Ô], Val(lstUsuario.ItemData(lstUsuario.ListIndex))
End Sub
ta retornado um erro
run-time error [Ô]3251[Ô]
o provedor atual não oferece suportepara a interface necessaria
à funcionalidade Ãndice
o que eu faço para isso funcionar alguem pode me ajudar. desde já agradeço
O provider não suporta o uso de Ãndices desta forma. Tente assim:
Sub ConectaaTabelaUsuario()
[ô]Conecta a tabela Usuario
TbUsuarios.Open [Ô]Select * from Usuarios[Ô], Conexao, adOpenKeyset, adLockOptimistic
TbUsuarios.Find [Ô]=[Ô] & Val(lstUsuario.ItemData(lstUsuario.ListIndex))
End Sub
Não da para usar indice abrindo o recordset como adOpenStatic e nem utilizando instrução SQL. Tente assim:
TbUsuarios.Open [Ô]Usuarios[Ô], Conexao, adOpenDynamic, adLockOptimistic
Caro HIDDEN Obrigado pela resposta mas deu o mesmo erro.
o provedor atual não oferece suportepara a interface necessaria
à funcionalidade Ãndice.
e no exemplo do amigo LLAIA
Sub ConectaaTabelaUsuario()
[ô]Conecta a tabela Usuario
TbUsuarios.Open [Ô]Select * from Usuarios[Ô], Conexao, adOpenKeyset, adLockOptimistic
TbUsuarios.Find [Ô]=[Ô] & Val(lstUsuario.ItemData(lstUsuario.ListIndex))
End Sub
deu o erro invalid property array index erro 381.
Desde ja agradeço as repostas.
o provedor atual não oferece suportepara a interface necessaria
à funcionalidade Ãndice.
e no exemplo do amigo LLAIA
Sub ConectaaTabelaUsuario()
[ô]Conecta a tabela Usuario
TbUsuarios.Open [Ô]Select * from Usuarios[Ô], Conexao, adOpenKeyset, adLockOptimistic
TbUsuarios.Find [Ô]=[Ô] & Val(lstUsuario.ItemData(lstUsuario.ListIndex))
End Sub
deu o erro invalid property array index erro 381.
Desde ja agradeço as repostas.
olha porque vc não usa a propria query
TbUsuarios.Open [Ô]Select * from Usuarios WHERE usuario = [ô][Ô] & Val(lstUsuario.ItemData(lstUsuario.ListIndex)) & [Ô][ô][Ô], Conexao, adOpenKeyset, adLockOptimistic
Tópico encerrado , respostas não são mais permitidas