CONSULTA VB6 BANCO .MDB A CADA 500 MILISEGUNDOS

LUISLPC 19/05/2012 22:06:35
#402330
Boa noite amigos....

Tenho um timer rodando com invertal = 500, o mesmo faz uma consulta no bd e retorna o campo [Ô]acao[Ô] em um textbox;
Depois tenho um otro timer que verifica se o textbox for igual a ligar ele executa uma funcao, se for igual a desligar executa outra funcao. funciona blza, so q as vezes da erro, nao anotei ele agora, mas creio que é por estar executando a consulta varias vezes....
Problema que terei que criar 8 timers para fazer essa consulta com o criterio where diferente.... e tenho medo de dar pau devido a serem feitas 8 consultas simultaneamente no mesmo bd a cada 500milisegundos.....

Sera que existe outra forma de fazer?

abaixo o codigo do timer que faz a consulta:

  Private Sub Timer1_Timer()

Dim con As ADODB.Connection
Set con = New ADODB.Connection
con.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;[Ô] & _
[Ô]Data Source=automacaocasa.mdb[Ô]

[ô]Objeto de acesso à tabela Products
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Open [Ô]SELECT * [Ô] & _
[Ô]FROM alarme1 [Ô] & _
[Ô]WHERE equipamento = [ô][Ô] & equip1.Text & [Ô] [ô] and data = [ô][Ô] & frmautomacao.dataatual.Text & [Ô][ô] and hora = [ô][Ô] & frmautomacao.horaatual.Text & [Ô][ô][Ô] & _
[Ô]ORDER BY Código;[Ô], con, adOpenKeyset, adLockReadOnly
[ô]Rotina para alimentar o ComboBox
Do While Not rs.EOF
statusacao1.Text = rs.Fields([Ô]acao[Ô])
Timer2.Enabled = True
[ô] Combo1.ItemData(Combo1.NewIndex) = rs.Fields([Ô]codigo[Ô])
rs.MoveNext
Loop

[ô]Fechar e descarregar os objetos de acesso da memória
rs.Close
Set rs = Nothing
[ô]con.Close
Set con = Nothing

End Sub


e abaixo o otro timer que executa a acao conforme o que a consulta retorna:

  Private Sub Timer2_Timer()
If statusacao1.Text = [Ô]Ligar[Ô] Then

Call frmautomacao.ligue1
Timer2.Enabled = False
Else

If statusacao1.Text = [Ô]Desligar[Ô] Then
Call frmautomacao.desligue1
Timer2.Enabled = False
End If
End If
End Sub


como comentei, estes 2 timers vou precisar fazer 8 iguais, o que ira mudar será o valor [Ô]equip1.Text[Ô] que sera equip2.Text, equip3.Text....

alguem tem alguma outra forma de eu fazer isto?

agradeco a qualquer ideia.

obrigado!
NILTON.VIANNA 21/05/2012 23:32:26
#402418
Private Sub txtNome_Change()
Dim SQL As String
If txtNome.Text <> [Ô][Ô] Then

SQL = [Ô]Select Nome, ClienteID from Cad_Clientes where Nome like [ô][Ô] & Trim$(txtNome.Text) & [Ô]%[ô][Ô]
Set rsClientes = New ADODB.Recordset
rsClientes.Open SQL, CnSql, adOpenDynamic, adLockOptimistic
Set GridC.DataSource = rsClientes [ô]Preenchendo Grid com Ado

GridC.Visible = True
GridC.RowHeight(0) = 0 [ô]Olculta o nome da Colununa
GridC.ColWidth(0) = 0 [ô]não mostra a promeira coluna
GridC.ColWidth(1) = 5800 [ô]tamanho da coluna Nome
GridC.ColWidth(2) = 0 [ô]tamanho da coluna ClienteID

Call OnGotoFocos(GridC)
GridC.ScrollBars = flexScrollBarVertical
End If

If GridC.Row = 0 Then
GridC.Visible = False
End If

If txtNome.Text = [Ô][Ô] Then
GridC.Visible = False
End If
End Sub


[ô]Obs o GridC uso o MSHFlexGrid
Tópico encerrado , respostas não são mais permitidas