EXIBIR CONSULTA MYSQL EM GRID

JONESPARIS 04/12/2009 18:27:21
#329186
Pessoal, como poderia exibir o resultado da conexão abaixo em um MsFlex Grid?

Option Explicit
Private WithEvents adoDataConn As ADODB.Connection
Private WithEvents rsMySQL As ADODB.Recordset

[ô]rsMySQL é o recordset que sera usado na conexao
Dim mblnAddMode As Boolean

[ô]Usado para indicar se os dados serao exibidos ou incluidosUsed to determine whether data should be displayed
Private Sub cmdAbreConexao_Click()

Dim strConnect As String
[ô]esta é a string de conexao
[ô]devera conter a informacao sobre o provedor e o
[ô]caminho do banco de dados

Dim strProvider As String
[ô]guarda o nome do provedor
Dim strDataSource As String
[ô]guarda a fonte de dados
Dim strDataBaseName As String
[ô]nome do banco de dados

Dim usr_id As String [ô] identificacao do usuario para o banco de dados
Dim pass As String [ô] a senha (se tiver) para o banco de dados
Dim mySqlIP As String [ô] o endereco ip da maquina na qual esta o mySql
mySqlIP = [Ô]jones-pc[Ô] [ô] a localizacao do usuario (localhost)

usr_id = [Ô]root[Ô] [ô] identificacao
pass = [Ô]25[Ô] [ô] senha

[ô] string de conexao
strConnect = [Ô]driver={MySQL ODBC 5.1 Driver};server=[Ô] & mySqlIP & [Ô];uid=[Ô] & usr_id & [Ô];pwd=[Ô] & pass & [Ô];database=inicial[Ô]

Set adoDataConn = New ADODB.Connection
[ô]preparando o objeto connection

adoDataConn.CursorLocation = adUseClient
[ô]usamos um cursor do lado do cliente pois os dados
[ô]serao acessados na maquina do cliente e nao de um servidor

adoDataConn.Open strConnect
[ô]Abreo o objeto connection

lblStringdeConexao.Caption = strConnect
[ô]Exibe a string de conexao

Set rsMySQL = New ADODB.Recordset
[ô]Prepara o recordset

rsMySQL.CursorType = adOpenStatic
[ô]Este é o unico tipo de cursor a ser usado
[ô]com um cursor localizado no lado do cliente

rsMySQL.CursorLocation = adUseClient
[ô]estamos usando o cursor no cliente

rsMySQL.LockType = adLockPessimistic
[ô]Isto garente que o registros que esta sendo editado
[ô]pode ser salvo

rsMySQL.Source = [Ô]Select * From clientes[Ô] [ô]altere para tabela que desejar
[ô]a fonte de dados usamos uma instrucal SQL

rsMySQL.ActiveConnection = adoDataConn
[ô]O recordset precisa saber qual a conexao em uso

rsMySQL.Open
[ô]abre o recordset com isto o evento MoveComplete sera disparado

cmdAbreConexao.Enabled = False
[ô]Desabilitamos o botão para nao iniciar um nova conexao

cmdFechaConexao.Enabled = True
[ô]Permitimos fechar a conexao

End Sub
TECLA 04/12/2009 22:50:15
#329199
Resposta escolhida
Set MSFlexGrid1.DataSource = rsMySQL
JONESPARIS 05/12/2009 00:55:56
#329203
Tecla, já tentei desta forma , não funcionou, deveria, pois estou passando para o Msflex todo o Recordset!!!

Obrigado por enquanto, se tiver mais alguma sugestão!
JONESPARIS 05/12/2009 01:26:42
#329205
Tecla, a forma que encontrei foi a seguinte:

MSFlexGrid1.Clip = rsMySQL.GetString

mas acho que ficou um pouco lento, lembrando que esta maneira ainda é mais rápida que usar um loop percorrendo todos os recordset

se tiverem mais alguma sugestão, fico agradecido
Tópico encerrado , respostas não são mais permitidas