From 5083b44b04712732803de6f2cd1de743353f2c42 Mon Sep 17 00:00:00 2001 From: carregal Date: Thu, 28 Apr 2005 16:50:28 +0000 Subject: [PATCH] Documentation update --- doc/br/luasql.png | Bin 0 -> 7723 bytes doc/br/manual.html | 337 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 337 insertions(+) create mode 100644 doc/br/luasql.png create mode 100644 doc/br/manual.html diff --git a/doc/br/luasql.png b/doc/br/luasql.png new file mode 100644 index 0000000000000000000000000000000000000000..6d322142dcfd3be2870d394dc9aef68fee4694a1 GIT binary patch literal 7723 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 literal 0 HcmV?d00001 diff --git a/doc/br/manual.html b/doc/br/manual.html new file mode 100644 index 0000000..7ed02d6 --- /dev/null +++ b/doc/br/manual.html @@ -0,0 +1,337 @@ + + + + LuaSQL: Conectividade de banco de dados para a linguagem de programação Lua + + + + + +
+ +
+ +
LuaSQL
+
Conectividade de banco de dados para a linguagem de programação Lua
+
+ +
+ + + +
+ +

Introdução

+

LuaSQL é uma interface simples entre Lua e um DBMS, que trabalha com uma +coleção de drivers de bancos de dados populares: PostgreSQL, ODBC, JDBC, MySQL, SQLite, Oracle e ADO + (Interbase e Sybase estão nos nossos planos). +LuaSQL define uma API orientada a objetos. Todos os drivers devem implementar essa API comum, +mas cada um é livre para oferecer extensões.

+ +

LuaSQL define uma única variável global: uma tabela chamada luasql. +Essa tabela é usada para armazenar os métodos de inicialização dos drivers instalados. +Esses métodos são usados para criar um +ambiente, +o qual é usado para criar uma +conexão. +A conexão pode executar comandos SQL e, eventualmente, criar um +cursor, utilizado para recuperar dados.

+ +

LuaSQL é um software livre e usa a mesma licença do Lua 5.0.

+ +

Instalação

+ +

LuaSQL é distribuído como um conjunto de arquivos fonte C – +um arquivo fonte e um arquivo cabeçalho comuns a todos os drivers +(luasql.h e luasql.c) – e um arquivo fonte para cada driver. +Cada driver deve ser compilado juntamente com o arquivo luasql.c +(ele é tão pequeno que não fizemos outra biblioteca para ele) +para gerar uma biblioteca. Essa biblioteca pode ser linkada à aplicação +ou carregada dinamicamente. A função de inicialização é +luaopen_luasqldrivername e é compatível com o formato de +abertura de bibliotecas de Lua.

+ +

Todos os drivers LuaSQL seguem a +proposta de pacotes +para Lua 5.1. Logo, esse pacote deve ser "instalado". +Em outras palavras, se você está usando Lua 5.0, é preciso usar os arquivos + compat-5.1.c e compat-5.1.h na compilação + e instalar o arquivo compat-5.1.lua no LUA_PATH. + Se você está trabalhando com Lua 5.1, nada precisa ser feito.

+ +

Para usar LuaSQL com o JDBC, certifique-se que:

+
    +
  • Lua está rodando com LuaJava
  • +
  • O jar do LuaSQL está na classpath da máquina virtual do Java
  • +
  • O driver JDBC do banco de dados desejado também está na classpath + da máquina virtual
  • +
+ +

Para usar LuaSQL com ADO, certifique-se que Lua está rodando com + LuaCOM 1.3

+ +

Tratamento de erros

+ +

LuaSQL é apenas uma camada abstrata de comunicação entre Lua +e um sistema de banco de dados. Portanto, erros podem ocorrem em ambos os níveis: +no cliente do banco de dados ou no driver LuaSQL.

+ +

Erros do tipo comandos SQL mal formados, nome de tabela desconhecido etc., chamados +erros de banco de dados, serão reportados pelo retorno de nil +pela função/método, seguido pela mensagem de erro enviada pelo +sistema do banco de dados. Erros como parâmetros inválidos, ausência +de conexão, objetos inválidos etc., chamados erros de API, +são usualmente erros de programação e geram erros Lua.

+ +

Esse comportamento vale para todas as funções/métodos descritos +neste documento, a menos que seja especificado de outra forma.

+ +

Ambiente

+ +

Um ambiente é criado chamando a função de inicialização +do driver que está armazenada na tabela luasql com o mesmo nome do driver +(odbc, postgres etc). Por exemplo,

+ +
+env = luasql.odbc()
+
+ +

tentará criar um ambiente usando o driver ODBC. A única exceção +é o driver JDBC que precisa ser informado sobre o driver interno que vai utilizar. +Logo, quando se cria um ambiente, deve-se passar o nome da classe do driver como primeiro +parâmetro para a função luasql.jdbc. Por exemplo:

+ +
+env = luasql.jdbc ("com.mysql.jdbc.Driver")
+
+ +

Métodos

+ +
    +
  • env:close()
    + Fecha o ambiente env. Só é bem sucedido se todas as suas + conexões já tiverem sido fechadas anteriormente.
    + Retorna: true, em caso de sucesso; false, quando o ambiente + já estiver fechado. +
  • + +
  • env:connect(sourcename[,username[,password]])
    + Conecta à fonte de dados especificada em sourcename usando + username e password se eles são fornecidos.
    + O sourcename pode variar de acordo com cada driver. + Alguns usam simplesmente o nome do banco de dados, como PostgreSQL, MySQL e SQLite; + o driver ODBC recebe o nome de DSN; o driver Oracle recebe o nome de serviço; e + o driver JDBC recebe um comando como + "jdbc:<database system>://<database name>", o qual é + específico para cada driver.
    + Veja também: PostgreSQL e + MySQL.
    + Retorna: uma conexão. +
  • +
+ + +

Conexão

+ +

Uma conexão contém atributos e parâmetros específicos de uma +única conexão de base de dados. Uma conexão é criada chamando +o método environment:connect.

+ +

Métodos

+ +
    +
  • conn:close()
    + Fecha a conexão conn. Só é bem sucedido se todos + os seus cursores tiverem sido fechados anteriormente.
    + Retorna: true, em caso de sucesso; false, quando a + conexão já estiver fechada. +
  • + +
  • conn:commit()
    + Efetua a transação corrente. Esse atributo pode não funcionar + em sistemas de banco de dados que não implementam transações.
    + Retorna: true, em caso de sucesso; false, quando + a operação não pode ser realizada ou não está implementada. +
  • + +
  • conn:execute(statement)
    + Executa o statement SQL dado.
    + Retorna: o cursor, se houver resultados, ou o número + de registros afetados de alguma forma pelo comando. +
  • + +
  • conn:rollback()
    + Desfaz a transação corrente. Esse atributo pode não funcionar + em sistemas de banco de dados que não implementam transações.
    + Retorna: true, em caso de sucesso; false, quando + a operação não pode ser realizada ou não está implementada. +
  • + +
  • conn:setautocommit(boolean)
    + Ativa ou desativa o modo "auto commit". Esse atributo pode não funcionar em sistemas + de banco de dados que não implementam transações. Em sistemas de banco + de dados que não trabalham com o conceito de " modo auto commit", mas que implementam + transações, esse mecanismo é implementado pelo driver.
    + Retorna: true, em caso de sucesso; false, quando + a operação não pode ser realizada ou não está implementada. +
  • +
+ + +

Cursor

+ +

Um cursor contém métodos para recuperar dados resultantes de um comando executado. +Um cursor é criado por meio de uma função +connection:execute. +Veja também: PostgreSQL +e Oracle.

+ +

Métodos

+ +
    +
  • cur:close()
    + Fecha esse cursor.
    + Retorna: true, em caso de sucesso; false, quando o cursor + já está fechado. +
  • + +
  • cur:fetch([table[,modestring]])
    + Recupera o próximo registro de resultados.
    + Se fetch é chamado sem parâmetros, os resultados + retornarão diretamente como uma lista de valores. Se fetch é + chamado com uma tabela, os resultados serão copiados para a tabela e a tabela + é retornada (por conveniência). Nesse caso, pode ser usado um + parâmetro opcional de modo (modestring): uma seqüência + de caracteres indicando como deve ser construída a tabela de resultados. + A seqüência de caracteres do modo pode conter: +
      +
    • "n", a tabela resultante terá índices numéricos (padrão)
    • +
    • "a", a tabela resultante terá índices alfanuméricos
    • +
    + Os índices numéricos representam as posições dos + campos no comando selecionado; os índices alfanuméricos representam + os nomes dos campos.
    + A tabela opcional (table) será usada para armazenar o próximo + registro. Isso permite o uso de uma única tabela para várias chamadas o que + pode melhorar o desempenho geral.
    + Não existe garantia sobre os tipos dos resultados, eles podem ou não ser convertidos pelo driver + para os tipos Lua adequados. Na implementação atual, os drivers PostgreSQL e MySQL + retornam todos os valores como strings enquanto os drivers ODBC e Oracle convertem esses valores + em tipos Lua.
    + Retorna: dados, como descrito acima, ou nil se não existem mais registros. + Note que esse método pode retornar nil como um resultadao válido. +
  • + +
  • cur:getcolnames()
    + Retorna: uma tabela com os nomes das colunas. +
  • + +
  • cur:getcoltypes()
    + Retorna: uma tabela com os tipos das colunas. +
  • +
+ +

+ +

PostgreSQL

+ +

Além das funcionalidades básicas oferecidas por todos os drivers +(ver manual), o driver Postgres ainda oferece funcionalidades extras:

+ +
    +
  • env:connect(sourcename[,username[,password[,hostname[,port]]]])
    + No driver PostgreSQL, esse método tem dois outros parâmetros que indicam + o hostname e a port a serem utilizados na conexão. + O primeiro parâmetro também pode conter todas as infornmações + de conexão, como é dito na documentação + para a função PQconnectdb no manual do PostgreSQL + (ex. environment:connect("dbname=<name> user=<username>"))
    + Veja também: ambiente
    + Retorna: uma conexão +
  • + +
  • cur:numrows()
    + Veja também: cursor
    + Retorna: o número de registros no resultado da busca. +
  • +
+ + +

MySQL

+ +

Além das funcionalidades básicas oferecidas por todos os drivers +(ver manual), o driver MySQL ainda oferece uma funcionalidade extra:

+ +
    +
  • env:connect(sourcename[,username[,password[,hostname[,port]]]])
    + No driver MySQL, esse método tem dois outros parâmetros que indicam o + hostname e a port a serem utilizados na conexão. + Veja também: ambiente
    + Retorna: uma conexão +
  • +
+ +

Nota: Esse driver é compatível com a versão 4.0 e 4.1 (alpha) do +MySQL API. Apenas as versões 4.1 oferecem suporte para transações que usam tabelas +BDB ou INNODB. Com a versão 4.0 ou sem um desses tipos de tabelas, os métodos +commit, rollback e setautocommit podem não funcionar.

+ +

Oracle

+ +

Além das funcionalidades básicas oferecidas por todos os drivers +(ver manual), o driver Oracle ainda oferece uma funcionalidade extra:

+ +
    +
  • cur:numrows()
    + Veja também: cursor
    + Retorna: o número de registros no resultado da pesquisa. +
  • +
+ +
+ +
+ +
+

Valid XHTML 1.0!

+

+ $Id: manual.html,v 1.1 2005/04/28 16:50:28 carregal Exp $ +

+
+ +
+ + +