Não foi possível enviar o arquivo. Será algum problema com as permissões?

Discussão - Página principal

interface aRT

paulojus@leg.ufpr.br Paulo J Ribeiro Jr, 2007/04/10 14:18:

Discussões sobre a interface do driver SQLITE no aRT

Discussão

Bruno Silva de Oliveira, 2007/04/16 14:34

From pedro@dpi.inpe.br Sun Apr 15 13:16:25 2007

Oi Bruno,

(Elias e Simone, gostaria que voces lessem o segundo paragrafo desta conversa)

acabei de implementar a compilacao com o sqlite. como ele pode ser instalado como pacote no linux entao o configure do aRT ja procura por esta instalacao nos diretorios mais comuns onde ele pode ser instalado. depois vemos o caso dele ter sido instalado em algum outro diretorio, e a sua compilacao para windows.

tive que mexer um pouco no codigo do aRT, porque o sqlite nao funciona tal como o mysql e o postgre, mas depois conversamos sobre isto. acabei tirando umas coisas do aRT que foram evoluindo com o tempo ate se tornarem gambiarras, hehe. isto pode ter deixado o aRT instavel, porque eh bem do kernel do pacote. ainda nao fiz testes o suficiente pra ver se esta tudo certinho. qq coisa que nao funcionar com o mysql e estava funcionando anteriormente me avisem. a nova versao do aRT esta em pedro@guaja:aRT, a versao é 1.3-3. instalei na versao global, pra todo mundo.

fiz um teste aqui com o sqlite e ele criou o banco, mas nao conseguiu fazer muita coisa alem disto... Bruno, pergunte para o pessoal de Natal se eles tem algum main para nos compilarmos e testarmos. parece que este driver ainda vai dar bastante trabalho, e a minha impressao é que estou com uma terralib em uma versao bem mais recente do que a que eles trabalharam.

Um abraco,

PEdro

Paulo J Ribeiro Jr, 2007/04/10 14:24, 2007/04/10 14:31

Mesmo na encaixando totalmente acho que deveria manter assim nesta classe com avisos que certes funcionalidades nao se aplicam a este "sgbd" , de forma analoga ao que imagino que a TV faz com access.

Para consistencia de comandos deleteDb pode ser um alias para o comando citado

Quanto aos demais: openDb n#ao será mesmo necessário? showDbs poderia listar os "bancos"(arquivos sqllite) em um determinado diretório

portanto apenas addUser seria desnecessario

Com isto (1) me parece adequado(embora a distncao de 1 e 2 nao seja totalmente clara para mim...), mas chamar createDb e deleteDb sozinhos tb é possível certo?

Pedro Andrade Neto, 2007/04/10 20:18

Não concordo com "showDbs poderia listar os "bancos"(arquivos sqllite) em um determinado diretório". Fica parecendo que o aRT só é capaz de abrir estes bancos, ou bancos que estejam neste diretório, o que nao é verdade. Ainda, talvez o usuário fique procurando por alguma função para mudar o diretório "default", antes de abrir o banco. Isto cai na mesma preocupação do pessoal de Natal para o diretório padrão para se salvar os bancos. A minha solução é simples: isto é problema do usuário.

No caso do terraview, e mesmo em termos de TerraLib, a coisa é um pouco diferente. Isto acontece porque não existe uma classe com o mesmo intúito de aRTconn na TerraLib. Eles já vão direto para o TeDatabase (encapsulado pelo aRTdb). addUser e deleteDb são códigos independentes da TerraLib, e não é possível fazer algo do tipo no TerraView. Isto teve que ser implementado para cada SGBD independentemente pelo aRT, para suprir necessidades internas do LEG. Tanto é que acredito que estas coisas não funcionem direito para o postgre, pois quase não usamos ele.

Paulo J Ribeiro Jr, 2007/04/10 14:19, 2007/04/10 14:29

O Pedro escreveu:

Conversei com o Bruno sobre isto aqui semana passada, mas ainda nao cheguei a uma conclusao final.

É o seguinte, o SQLite nao é um SGBD, pois ele nao gerencia vários bancos de dados. ele é apenas um manipulador de arquivos tal como o "concorrente" access. Desta forma, ele não se encaixa totalmente no conceito da classe 'aRTconn', que encapsula o acesso ao MySQL e Postgre. Esta classe possui as seguintes funcoes (?aRTconn):

    addUser: Grants ALL permissions on the DBMS to a user.(futuramente algo mais que isto)
    createDb: Creates a new database and returns a connection to it.
    deleteDb: Removes a database from the DBMS.
    openDb: Opens an existent database.
    showDbs: Shows the avilable databases.

Visivelmente, a unica funcao destas que o sqlite pode permitir é a createDb. Acredito que deleteDb não seja funcao do aRT (se o cara quiser fazer isso, que use um 'system("rm /home/fulano/banco")').

.......

Entao vem a pergunta. O que é melhor:

  1. ter o sqlite dentro do aRTconn, como os outros. e dai colocar mensagens de erro em todas as funcoes que o sqlite nao suporte.
  2. deixa-lo de fora e o openDb/createDb tratam dele internamente? por exemplo, se a string representando o banco tiver a extensao do sqlite no final, ou um "/", o aRT ja sabe como abrir este banco.
  3. misturar 1 e 2?
Insira seu comentário. Sintaxe wiki é permitida:
N L S T T
 

QR Code
QR Code novo_topico:interface_art (generated for current page)