Histórico da Página
Pagetitle | ||||
---|---|---|---|---|
|
Introdução
Damos o nome de SQLITEDB para a utilização do
como Banco de Dados principal de um ambiente, onde é possível acessar os dados do Inclusão de trecho SQLite SQLite nopanel true
através da RDD TOPCONN e demais funções específicas do Inclusão de trecho sqlite sqlite nopanel true
(TC_*). Na prática, você pega um programa originalmente escrito para trabalhar com um SGDB homologado pelo Inclusão de trecho DBAccess DBAccess nopanel true
, e configura o seu ambiente no Inclusão de trecho tecen:DBAccess tecen:DBAccess nopanel true
para usar o Inclusão de trecho Application Server Application Server nopanel true
como banco de dados, e internamente o Driver/RDD TOPCONN e as funções de execução de instruções e queries ( TCSqlExec, TCGenQry... ) usam internamente o Inclusão de trecho SQLITE SQLITE nopanel true
, como se ele estivesse sendo acessado por um Inclusão de trecho SQLITE SQLITE nopanel true
– mas sem a necessidade deste, afinal o Inclusão de trecho DBAccess DBAccess nopanel true
já está dentro do Inclusão de trecho SQLite SQLite nopanel true
. Inclusão de trecho Application Server Application Server nopanel true
Nota |
---|
|
Configuração
Basta partir de um ambiente com RPODB=SQL ( TTT?.RPO), e trocar a configuração de RPODB=SQL para RPODB=SQLITE, e acrescentar as configurações abaixo, com os valores estipulados abaixo na seção de configuração do ambiente:
Sem Formato |
---|
DBDataBase=SQLITE |
DBServer=localhost |
DBPort=7890 |
DBALIAS=SYSTEM |
Comportamentos e detalhes técnicosDesta forma, neste
- Neste ambiente a utilização da RDD "TOPCONN" para a criação e abertura de tabelas vai internamente usar o
como Banco de Dados, sem precisar de umInclusão de trecho SQLITE SQLITE nopanel true
.Inclusão de trecho DBAccess DBAccess nopanel true - A maioria das funções específicas do
, como TCLink(), TCCanOpen(), TCDelFile() entre outras são utilizadas da mesma forma, porém o Banco de Dados em uso será oInclusão de trecho DBAccess DBAccess nopanel true
.Inclusão de trecho SQLite SQLite nopanel true - Algumas funcionalidades não foram implementadas, como por exemplo as funções para stored procedures e virtualização de índices. A função TCLink() deve ser chamada como se o Banco de Dados em uso fosse acessado pelo
, embora internamente não existe uma conexão TCP, mas sim um contexto de uso equivalente a uma conexão.Inclusão de trecho tecen:DBAccess tecen:DBAccess nopanel true - A função
TCGetDB() neste ambiente retorna a string "SQLITE"Inclusão de trecho teces:AdvPL teces:AdvPL nopanel true - O arquivo em disco que será usado como o Banco do
chama-se "system.db", e será criado automaticamente em uma pasta chamada DB_SYS, criada também automaticamente a partir do RootPath do ambiente.Inclusão de trecho SQLite SQLite nopanel true - Também será criada uma pasta adicional chamada "db_tmp" a partir do RootPath, para uso de arquivos temporários do do
.Inclusão de trecho SQLite SQLite nopanel true - Podemos alterar as pastas acima através das configurações DBSysPath e DBTmpPath – que devem informar um caminho completo de onde os arquivos de dados devem ser criados, e estas pastas podem ser especificadas fora do RootPath do ambiente – MAS nenhuma outra instância de
deve ser configurada para acessar os mesmos arquivos da mesma pasta, sob pena de corrompimento dos dados e comportamentos inesperados.Inclusão de trecho Application Server Application Server nopanel true - Uma base do
somente pode ser acessada por um serviço doInclusão de trecho SQLite SQLite nopanel true
, e sempre apontando para um PATH na máquina local, jamais para um compartilhamento de rede.Inclusão de trecho Application Server Application Server nopanel true
Informações | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||
Na mesma pasta onde fica o arquivo de dados do
|
Restrições
Algumas restrições de funcionalidade e comportamentos aplicam-se a este ambiente, a saber:
- Acesso concorrente : A
- implementação do SQLITEDB suporta multi-thread – múltiplos processos executando operações na mesma base de dados. Porém, o
- possui limitações implícitas para operações de DDL – como por exemplo alteração de estrutura de tabelas, criar e apagar tabelas e índices, onde o nível de bloqueio é mais restritivo do que um Banco de Dados relacional — operações de alteração de definição e de objetos no
- não podem ser feitas concorrentemente com outras operações quaisquer, exigindo acesso exclusivo. Neste contexto, como o encapsulamento de acesso ao Banco de Dados feito pelo
- fecha internamente as tabelas e queries em execução, de forma transparente, para conseguir realizar a operação, e restaura sob demanda os contextos de execução.
Restrições
Algumas restrições de funcionalidade e comportamentos aplicam-se a este ambiente, a saber:
- Transacionamento
- Transacionamento : Embora as funções de transacionamento esteja disponíveis, internamente elas estão configuradas por default para não
- serem executadas. É possível habilitar o suporte a transacionamento explícito
- , porém isso somente é recomendável se a aplicação em
- questão usar apenas um contexto de conexão e
- apenas uma processo
- . Uma vez que exista uma transação aberta, nenhum outro processo consegue abrir outra transação, ou realizar qualquer instrução de DDL no
Inclusão de trecho
SQLITE
– como por exemplo criar ou apagar uma tabela ou índice.SQLITE nopanel true
- Integração com DBAccess
- : Como a configuração do ambiente indica
- que a RDD TOPCONN e funções TC* devem usar o internamente o
Inclusão de trecho
SQLITE SQLITE
, este ambiente não carrega a biblioteca clientenopanel true
- do
Inclusão de trecho
DBAccess
DBAccess nopanel true
- (DBAPI), e portanto (ainda) não é capaz de conectar com um
- outro SGDB enquanto utilizar o ambiente RPODB=SQLITE.
- Tabelas Temporárias
- Tabelas Temporárias : O
- possui um mecanismo de criação de tabelas temporárias nos bancos de dados homologados, e a mesma API e endereçamento foram implementadas também para
- o
como Base de Dados principal. Porém, (ainda) não é permitido fazer uma query de uma tabela da base de dados com um JOIN de uma tabela temporária, bem como rodar queries sobre uma tabela temporária. Por hora sua implementação atende apenas aos requisitos de acesso em modo ISAM – usando as funçõesInclusão de trecho SQLite SQLite nopanel true
- endereçando a tabela temporária
- através da RDD TOPCONN
Aviso | ||
---|---|---|
| ||
O formato de um Database |
é aberto e multi-plataforma, e existem diversas ferramentas de consulta e DDL/DML que atuam sobre estes tipos de arquivo. Sendo assim, existem várias ferramentas externas suportam manipular este tipo de arquivo. Porém, nenhuma deve ser usada para algo diferente de CONSULTAR informações. Fazer DDL ou DML nas bases de dados |
é uma prerrogativa da implementação do |
, mesmo tais operações sejam realizadas em uma cópia da tabela, apartada e acessada em modo exclusivo. Se utilizadas ferramentas externas para consulta de dados, evite utilizar a ferramenta de consulta enquanto a base |
em questão está sendo usada pelo |
, pois a aplicação externa pode interferir e prejudicar a operação do
|
|
|