[firebase-br] Mais duvidas

Cmte Wilson wilson.butigeli em itelefonica.com.br
Qui Jan 22 12:55:18 -03 2009


Julio, faço da seguinte maneira:

abertura de conexão feita numa procedure em um módulo a parte
Tenho um arquivo .txt onde coloco os dados que preciso (ip do servidor, 
path até o banco, e um metodo que pode ser obdc ou oledb)

   Global Conn As New ADODB.Connection
    Set Conn = CreateObject("Adodb.connection")
    Conn.CursorLocation = adUseServer
    If vmetod = "1" Then
       Conn.Open "DRIVER=Firebird/Interbase(r) driver; UID=SYSDBA; 
PWD=masterkey; DBNAME=" & vipip & ":" & vcami & "\TRANSPORTE.FDB"
    ElseIf vmetod = "2" Then
       Conn.Open "Provider=IbOleDb.1;Location=" & vipip & ";Data 
Source=" & vcami & "\TRANSPORTE.FDB;User 
ID=SYSDBA;Password=masterkey;Extended Properties='sql 
Dialect=3;Character Set=ISO8859_1;Collate = PT_BR'"
    Else
    msgbox "Erro"
   endif


minhas consultas sao da seguinte forma:
como já tenho a conexão aberta o mdiform só realizo os select, insert, 
update,...
                     Dim teste As New ADODB.Recordset: Set teste = 
CreateObject("ADODB.RECORDSET")
                    Set teste = Conn.Execute("Select gen_id(gen_aluno,1) 
from rdb$database")
                    txtcodigo.text = teste!gen_id
                    teste.Close: Set teste = Nothing
                    txtnome.SetFocus

ou um outro exemplo

        Dim setor As New ADODB.Recordset: Set setor = 
CreateObject("ADODB.RECORDSET")
        Set setor = Conn.Execute("Select A.dataalteracao, 
A.datacadastro, A.hora, A.codigooperador, A.codigoaluno, A.endereco, 
A.rg, A.cpf, A.telefone, A.fax, A.celular, A.nascimento, A.nome, A.pai, 
A.mae, A.km, A.casaescola, A.cidadeviagem, A.codigobairro, 
A.codigosituacao, A.codigotransporte, " & _
                                 "S.descricaosituacao, " & _
                                 "B.descricaobairro, " & _
                                 "T.descricaotransporte " & _
                                 "from ALUNO A, SITUACAO S, TRANSPORTE 
T, BAIRRO B " & _
                                 "where A.codigoaluno=" & txtcodigo.text 
& "  " & _
                                 "and A.codigosituacao=S.codigosituacao 
" & _
                                 "and 
A.codigotransporte=T.codigotransporte " & _
                                 "and A.codigobairro=B.codigobairro " & _
                                 "order by A.codigoaluno asc")
        If Not setor.EOF Then
           msknascimento.Mask = ""
           mskrg.Mask = ""
.....

Espero ter auxiliado.
Wilson



Julio Oliveira escreveu:
> Gente desculpe se estou enchendo o saco de vocês com duvidas bobas, já que
> tenho acompanhado o fórum e as perguntas são bem especificas e difíceis,
> pelo menos pra mim neste momento, porem é o seguinte :
>
>  
>
> Estou reescrevendo uma aplicação em VB6 que eu tenho aqui, de Software
> Hoteleiro, que está rodando perfeitamente com access e DAO, porem resolvi
> utilizar e ao mesmo tempo estudar o FIREBIRD com o ADO, já era hora de
> migrar. Bom meu primeiro dilema foi acessar o firebird, consegui resolver
> depois de muito penar, agora estou com o segundo problema que é o seguinte.
> O meu sistema quando inicia primeiramente ele pede um login e uma senha de
> acesso que é o acesso ao SISTEMA e nao ao banco de dados, perfeito, o
> usuario digita login e senha e eu acesso a tabela de usuarios no firebird
> perfeitamente sem problema nenhum, e autentico a entrada do mesmo, em
> seguida eu executo um MDIFORM que é onde existe o menu da aplicação e acesso
> novamente o FIREBIRD a fim de pegar os seus acessos, e dar enable ou nao nas
> opções do menu. Bom o meu problema esta na hora em que vou abrir o recordset
> deste acesso, pois, o VB me retorna o erro Runtime error
> -2147467259(80004005) erro desconhecido e nao abre de forma nenhuma o
> recordset, abaixo forneço como estou abrindo o RS. 
>
> Function SETARS()
> dim mbanco as adodb.connection
> dim mparam as adodb.recordset
> dim CONEXAO as string
> CONEXAO = "Provider=IbOleDb;Location=x.ddns.com.br:;Data
> Source=d:\dados\database\hotel.gdb;user
> id=SYSDBA;password=masterkey;Extended Properties=Character Set=ISO8859_1;SQL
> Dialect=3;User Role=;"
> set mBanco = New ADODB.Connection
> mBanco.CursorLocation = adUseClient
> mBanco.Open funcoes.CONEXAO
> Set mtabparam = New ADODB.Recordset
> mtabparam.CursorType = adOpenStatic
> mtabparam.CursorLocation = adUseClient
> mtabparam.LockType = adLockPessimistic
> mtabparam.Source = "SELECT * FROM USRTELAS WHERE USRID =" & FUNCOES.MCODUSER
> mtabparam.ActiveConnection = funcoes.mBanco
> mtabparam.Open
> End Function
>
> O VALOR DE FUNCOES.MCODUSER é 1, pois bem é a mesma instrução de quando
> autentico o usuario a unica coisa diferente é a instrução select que é em
> outra tabela.
>
> Sera que alguem poderia me ajudar ou pelo menos tentar me dar uma luz do que
> esta acontecendo ? isso ocorre com qualquer outra tabela que eu tente
> acessar, ou seja, o primeiro acesso do meu sistema em qualquer tabela
> funciona 100 % porem no segundo acesso em diante dá o erro mencionado
> anteriormente, ja encontrei que esse erro poderia se referir a direitos das
> tabelas, porem estou com o usuario ADMINISTRADOR do FIREBIRD e já conferi os
> seus direitos e ele tem acesso a fazer tudo no BANCO e em QUALQUER TABELA.
>
> Pelo amor de deus, estou a ponto de desistir e voltar para o bom e velho DAO
> com ACCESS onde tudo funcionava maravilhosamente bem (rsrsrsrsrs)...
>
> Obrigado a todos pela atenção. 
>
>  
>
>  
>
> ______________________________________________
> 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
>   
> ------------------------------------------------------------------------
>
>
> No virus found in this incoming message.
> Checked by AVG - http://www.avg.com 
> Version: 8.0.176 / Virus Database: 270.10.12/1908 - Release Date: 21/1/2009 21:15
>
>   





Mais detalhes sobre a lista de discussão lista