Dado
Facilidades sobre a LuaSQL
english·português

Visão Geral

Dado é um pacote que oferece facilidades implementadas sobre objetos de conexão da LuaSQL. Seus principais objetivos são:

  • mensagens de erro melhores,
  • iteradores para acessar os resultados, e
  • mais homogeneidade em algumas operações comumente usadas sobre bancos de dados.

Dado é software livre e usa a mesma licença de Lua.

Abstrações sobre objetos

O pacote também contém um módulo de objetos que provê um meio de definir classes e objetos que representem linhas de tabelas do banco com um esforço mínimo. Dado não impõe um sistema de classes, ele sugere apenas um esquema com herança simples:

  • objetos com recuperação automática de atributos do banco de dados
  • métodos diferentes para a criação de objetos e para a definição de classes

O mecanismo default usa classes para representar tabelas do banco e instâncias para representar linhas de tabelas do banco. Entretanto é fácil definir atributos que não sejam relacionados com colunas de tabelas, ou classes que não sejam relacionadas com tabelas únicas.

Status

A versão atual é a 1.8.3. Ela foi desenvolvida para Lua 5.1 e Lua 5.2. Esta versão deve funcionar também em Lua 5.3, embora apenas os módulos dado.sql e table.extra tenham sido testados (os outros módulos dependem da LuaSQL, que ainda não estava disponível para esta versão da linguagem no lançamento desta biblioteca).

Download

Dado pode ser obtida de sua própria página.

Instalação

Dado é um conjunto de módulos para Lua 5 (compatível com todas as versões de Lua 5.X) que deve ser instalado no seu LUA_PATH, respeitando a estrutura de diretórios da pasta src do arquivo de distribuição.

LuaRocks pode ser usado para instalar o pacote, já que este é também distribuído como um rock.

Manual

Não há um manual de referência. A API é documentada através do LDoc e só está disponível em inglês.

Histórico

  • [5/abr/2017] Lançamento da versão 1.8.3
    • Função daod.sql.quote passa a tratar números do mesmo jeito que trata booleanos: ambos passam a ser representados como constantes do banco, i.e. convertidos para strings e colocados entre parênteses duplos
    • Versão testada com Lua sem coerção automática (contribuição de François Perrad)
  • [4/abr/2017] Lançamento da versão 1.8.2
    • Reimplementação da função table.extra.fullconcat: ela assume que a tabela recebida tem chaves e valores apropriados (contribuição de François Perrad)
    • Adaptação da implementação da função table.extra.twostr (contribuição de François Perrad)
  • [16/mar/2017] Lançamento da versão 1.8.1
    Melhoria na função table.extra.fullconcat: força a conversão dos elementos da tabela em strings por default (contribuição de François Perrad)
  • [22/feb/2017] Lançamento da versão 1.8
    Acréscimo da função sql.quotedconcat
  • [4/dez/2015] Lançamento da versão 1.7.1
    Pequenas correções nas variáveis _VERSION de cada módulo.
  • [29/aug/2015] Lançamento da versão 1.7
    • select agora aceita uma tabela como o valor do parâmetro mode, indicanto que mode deve ser a e o resultado da consulta deve ser armazenado na tabela dada
    • Correção de bug em sql.quote: valores booleanos passam a ser representados como outras constantes do banco, i.e. convertidos para strings e colocados entre parênteses duplos
    • Correção de bug em sql.isinteger: valores fracionários eram aceitos incorretamente
    • Correção de bug em table.extra.twostr: valores booleanos não estavam sendo corretamente serializados
  • [31/mar/2015] Lançamento da versão 1.6
    sql.quote passa a aceitar booleanos como valores a serem repassados para o banco de dados; valores desse tipo não recebem aspas como as strings e passam a se comportar como os números
  • [15/oct/2013] Lançamento da versão 1.5.2
    Correção de bug na função sql.quote: ela não coloca aspas em strings formadas por parênteses duplos balanceados, como ((NULL)) ou ((select col from tab where cond)); ela não coloca aspas em números (embora coloque aspas em strings contendo números)
  • [4/oct/2013] Lançamento da versão 1.5.1
    • sql.escape agora segue estritamente o padrão SQL: não tenta mais escapar qualquer coisa, apenas o delimitador de strings '; além disso, não remove três caracteres especiais: TAB (\t ou \9), LINE FEED (\n ou \10) e CARRIAGE RETURN (\r ou \13)
    • sql.quote NÃO coloca aspas em números (embora coloque aspas em strings que contenham dígitos, como '12') NEM em strings formadas por parênteses balanceados dentro dos quais exista: apenas um identificador (sem dígitos); ou uma string contendo 'select' como substring
    • sql.insert passa a aceitar uma única string como argumento, contendo todo o comando SQL (exceto as duas primeira palavras: insert into)
  • [23/jan/2013] Lançamento da versão 1.4.3
    Melhoria na função sql.escape: caracteres com códigos < 32 passam a ser removidos, para evitar problemas na geração de SQL
  • [13/nov/2012] Lançamento da versão 1.4.2
    • Reimplementação para tornar-se compatível com Lua 5.2.
    • Melhoria na função sql.escape: terceiro parâmetro passa a ser um padrão de substituição
  • [06/jun/2011] Lançamento da versão 1.4
    Limpeza de funções não usadas: arraytorecord, invert, copyto e cycle do módulo table.extra e o módulo string.extra completamente
  • [14/dez/2010] Lançamento da versão 1.3.1
    Correção de bug na função sql.quote: não estava colocando aspas em strings que começam e terminam com parênteses que não casam
  • [06/ago/2010] Lançamento da versão 1.3.0
  • [10/jun/2010] Lançamento da versão 1.2.0
    • Acréscimo da função de conveniência sql.AND
    • Acréscimo de documentação em português
  • [05/out/2009] Lançamento da versão 1.1.0
  • [29/set/2009] Lançamento da versão 1.0.1
    Correção de bug na função sql.quote
  • [20/abr/2008] Lançamento da versão 1.0

Créditos

Dado foi projetada por Tomás Guisasola e Eduardo Quintão com muitas contribuições importantes de Pedro Maia, Roberto Ierusalimschy, André Carregal, Raphael Pithan, Maurício Bonfim e Carla Ourofino. O logo foi criado por Carla Ourofino.

Dado foi desenvolvida para a PUC-Rio que detém o copyright. Foi implementada por Tomás Guisasola.

Fale conosco

Para maiores informações: fale conosco. Comentários são bem vindos!

Valid XHTML 1.0!

$Id: index.html,v 1.27 2017/04/05 19:14:07 tomas Exp $