[firebase-br] Alguem ai usa Python com FB?

Gladiston Santana gladiston em vidy.com.br
Seg Dez 9 13:44:18 -03 2019


Descobri o que houve.

O problema está em o python não achar a 'fbclient.dll', eu usei o instalar
do firebird 64 e pedi para instalar apenas o cliente, mas parece que ele
não colocou o fbclient em c:\windows\system, talvez por considerar que
havia uma versão 32bits em c:\windows\syswol64.

Agora meu script conecta.
Ainda tô tentando entender porque o except abaixo não funcionou:
    except fdb.ProgrammingError as er:
        print(str(er))
        return False

    except fdb.DatabaseError as dberr:
       print(str(dberr))
       return False
Pois seria muito util diagnosticar erros do banco de  dados dessa forma.

Agora o próximo passo será encontrar a função para restaurar base de dados
nativamente.

Em seg., 9 de dez. de 2019 às 13:11, Gladiston Santana <
gladiston em vidy.com.br> escreveu:

> O Murilo. PHA,... dá uma ajuda aí.
> O codigo tá aqui:
> https://pastebin.com/eSJvCCgk
>
> Tentei acrescentar as linhas que sugeriu e o pycharm sublinhou 'er' e
> 'dberr' impedindo prosseguir por dentro do except.
> Se eu conseguir sucesso no connect, a próxima parte será substituir o gbak
> (para restaurar a base de dados) por alguma função de serviço que faça o
> mesmo.
> Para explicar este script é uma conversão do que eu fazia em bash, depois
> em .bat e agora estou fazendo em python.
> Ele só reverte meu banco de dados de desenvolvimento quando faço
> 'caquinha'.
> Por comodidade, vou transformar python na segunda linguagem para falar com
> o SO Windows e Linux e deixar de lado, bash, vbs e .cmd que é o que eu
> geralmente uso para criar scripts de assistência em diversas tarefas.
>
>
> Em seg., 9 de dez. de 2019 às 12:04, Murilo Furquim <
> murilofurquim em gmail.com> escreveu:
>
>> Troque teu bloco except por esse abaixo, assim vai dar uma mensagem
>> mais detalhada do erro
>>
>>     except fdb.ProgrammingError as er:
>>         print(str(er))
>>         return False
>>
>>     except fdb.DatabaseError as dberr:
>>        print(str(dberr))
>>        return False
>>
>> Em seg., 9 de dez. de 2019 às 11:42, Paulo H Albanez
>> <phalbanez em gmail.com> escreveu:
>> >
>> > Bom dia,
>> >
>> > Não utilizo ainda rss.
>> >
>> > Mas será que não é a barra \ de escape?
>> >
>> > Mas com certeza você já testou.
>> >
>> > Nos exemplos do site abixo seria algo assim  res =
>> > fdb_set_all_password('localhost:c:/teste/dados/teste.fdb',
>> > 'sysdba', 'masterkey') #fdb_dsn
>> >
>> >
>> https://firebirdsql.org/file/documentation/drivers_documentation/python/fdb/getting-started.html
>> >  1
>> >
>> >
>> > Atenciosamente,
>> >
>> > Paulo Henrique Albanez (PHA)
>> > VirtualSystem Informática Ltda
>> > Nova Odessa / SP - Brazil
>> >
>> >
>> > Em seg., 9 de dez. de 2019 às 11:06, Gladiston Santana <
>> > gladiston em vidy.com.br> escreveu:
>> >
>> > > Estou tentando conectar uma base de testes da seguinte forma:
>> > >
>> > > def fdb_set_all_password(con_dsn, con_user='SYSDBA',
>> > > con_password='masterkey', set_password='masterkey'):
>> > >     print('Modificando a senha de todos os usuarios em', con_dsn,
>> > > 'para', set_password)
>> > >     try:
>> > >         con = fdb.connect(dsn=con_dsn, user=con_user,
>> > > password=con_password)
>> > >         print('Sucesso ao aplicar senha em', con_dsn, 'para',
>> set_password)
>> > >         return True
>> > >     except:
>> > >         print('Falha ao aplicar senha em', con_dsn, 'para',
>> set_password)
>> > >         return False
>> > >
>> > > A chamada da função acima é:
>> > >
>> > > res = fdb_set_all_password('localhost:c:\\teste\\dados\\teste.fdb',
>> > > 'sysdba', 'masterkey') #fdb_dsn
>> > >
>> > > E a conexão só falha!
>> > > De inicio achei que era por causa das barras duplas, daí use no seu
>> lugar
>> > > barras invertidas / ao estilo unix e obtive as mesmas falhas. Eu sou
>> meio
>> > > 'larva' ainda com Python e devem com certeza ser um problema banal.
>> > > Mas se alguem apontar o problema, por gentileza compartilhe comigo.
>> > >
>> > > PS: a biblioteca 'fdb' foi importada com sucesso. Estou usando como
>> > > referencia o material nesse link:
>> > >
>> > >
>> https://firebirdsql.org/file/documentation/drivers_documentation/python/fdb/index.html
>> > > ______________________________________________
>> > > 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://www.firebase.com.br/pesquisa_lista.html
>> > >
>> > ______________________________________________
>> > 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://www.firebase.com.br/pesquisa_lista.html
>>
>> ______________________________________________
>> 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://www.firebase.com.br/pesquisa_lista.html
>>
>
>
> --
> A Vidy possui um Sistema de Gestão da Qualidade estruturado e com
> Certificação ISO 9001 há mais de 10 anos, mantendo seu foco na Qualidade e
> na Melhoria Continua.
>
> Em março de2018 migramos com sucesso para a nova versão da ISO 9001.
>
> Somos a única Empresa Brasileira de Engenharia de Laboratórios com
> certificação com o Escopo Completo; desde Projetos, Engenharia, Construção,
> Fabricação e Instalação de Laboratórios.
>
>
>
>
>


-- 
A Vidy possui um Sistema de Gestão da Qualidade estruturado e com
Certificação ISO 9001 há mais de 10 anos, mantendo seu foco na Qualidade e
na Melhoria Continua.

Em março de2018 migramos com sucesso para a nova versão da ISO 9001.

Somos a única Empresa Brasileira de Engenharia de Laboratórios com
certificação com o Escopo Completo; desde Projetos, Engenharia, Construção,
Fabricação e Instalação de Laboratórios.



Mais detalhes sobre a lista de discussão lista