[firebase-br] RES: Mais duvidas
Julio Oliveira
juliocesararaujo.oliveira em gmail.com
Qui Jan 22 15:07:58 -03 2009
Realmente ta difícil pra chegar a uma conclusão, Alexandre e Wilson,
obrigado pelas respostas, mas to fazendo a mesma coisa que vocês fazem mas
mesmo assim não consigo acessar a segunda tabela que abro em meu sistema,
será algum problema junto ao banco ?
-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Alexandre [FiveTech]
Enviada em: quinta-feira, 22 de janeiro de 2009 14:15
Para: FireBase
Assunto: Re: [firebase-br] Mais duvidas
Boa tarde a todos,
Só pelo código que mandou não dá para ter muita certeza do que está
acontecendo, mas concordo com o Wilson. Provavelmente você está tentando
abrir mais de uma conexão com o mesmo nome ao mesmo tempo.
Faço quase igual ao Wilson, porém utilizo mais funções que facilitam
durante o código.
Tenho um módulo com uma função Sub Main(). Nesta função abro a única
conexão do sistema:
Public DB As ADODB.Connection
Public sSql As String
Public Sub Main()
If App.PrevInstance Then
MsgBox "Este programa já está sendo executado.", vbCritical
End
Else
Dim bStatus As Boolean
Call ConectaDB(bStatus)
If bStatus = True Then
frmLogin.Show
Else
End
End If
End If
end sub
Função ConectaDB
Public Function ConectaDB(ByRef bStatus As Boolean) As Boolean
On Error GoTo ERR_conectarDB
Call LeArquivoInicial 'Esta função busca em um arquivo .INI alguns
parametros do banco
sConnect = "DRIVER=Firebird/InterBase(r) driver; "
sConnect = sConnect & "UID=SYSDBA; "
sConnect = sConnect & "PASSWORD=MASTERKEY; "
sConnect = sConnect & "DATABASE=" & sDataBase 'sDataBase é o local
e nome do banco que veio pela função LeArquivoInicial()
Set DB = New ADODB.Connection
DB.ConnectionTimeout = 180 'Segundos
DB.CommandTimeout = 180 'Segundos
DB.CursorLocation = adUseClient
DB.Open sConnect
bStatus = True
Exit Function
ERR_conectarDB:
Select Case ERR
Case 3146
Beep
Call MsgBox(Error(0), 16, "Atenção")
Case Is <> 0
Beep
Call MsgBox("Ocorreu o erro " & ERR & ", " & ERR.Description,
16, "Atenção")
End
End Select
End Function
E essa aqui é a função que utilizo em todo o sistema para executar as
selects no banco.
Sub Query(ByRef rs, sSql)
' Executa uma query no banco especificado
' Parametros: rs - variavel ADODB RecordSet
' sql - comando sql que será executado no banco
' db - variavel ADODB Connection
' Exemplo de chamada da função: call query(rsPesquisa,ssql)
' onde: rsPesquisa receberá o resultado da select
' ssql deve conter a select desejada
On Error Resume Next
Set rs = New ADODB.Recordset
rs.Open sSql, DB, 3, 3, 1 'adOpenStatic, adLockOptimistic, adCmdText
If ERR.Number <> 0 Then
MsgBox Sql & vbCrLf & ERR.Description & vbCrLf & sSql
End If
End Sub
Abraços,
Alexandre Sanches Bazan
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista