Publicado em turbogears, Uncategorized

SQLObject: Estou usando-o corretamente?

Passei a maior parte do tempo testando o ORM SQLObject no Linux e usando o banco de dados SQLite. Nesses últimos dias, porém passei a aplicá-lo no PostgreSQL e no Windows. Apareceram coisas desagradáveis nesse processo.

Tive problemas com o CurrencyCol. No SQLite, ele retorna float; no PostgreSQL retorna decimal.Decimal. Era só o que faltava. Hoje, sobrescrevo as propriedades para transformar tudo em decimal.Decimal.

Quando o mudei para o Windows, as coisas pioraram. Além do SQLObject retornar tipos diferentes, agora preciso codificar os unicodes de request para string padrão nas consultas.

Pelo que eu me lembre, o Hibernate não tinha esses inconvenientes 😦 Espero que o pessoal que desenvolve tenha notado esses problemas e passem a corrigí-los.

Anúncios

3 comentários em “SQLObject: Estou usando-o corretamente?

  1. > Espero que o pessoal que desenvolve tenha notado
    > esses problemas e passem a corrigí-los.

    Bom, apesar do SQLObject não ser um exemplo de projeto bem mantido, se você enviar uma reclamação o pessoal vai te ouvir. 🙂

    Abraço

  2. Torcato,

    Segue uma sugestão:

    Que tal usar aqueles métodos mágicos _get_* para tratar as saídas excêntricas (como esta do CurrencyCol), verificando o tipo e convertendo – quando necessário – para o tipo com o qual você deseja trabalhar?

    Se necessário, faça o mesmo com _set_*.

    Sei que este tratamento deveria ser responsabilidade do módulo, mas já que está dando problema, façamos nosso bacalhau! =)

    []’s

  3. Uma coisinha que descobri depois de apanhar um pouco…

    O módulo MySQLdb – que é usado pelo SQLObject para acessar MySQL – possui em sua versão 1.2.1 uma série de restrições a caracteres não-ingleses.

    Na verdade, parece que o autor tenta converver (encode) o conjunto de caracteres para ascii antes de fazer consultas e escritas na base de dados. Estas conversões se encontram no arquivo cursor.py.

    Comentei todas as ocorrências de charset no arquivo e passou a funcionar direitinho.

    []’s

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s