Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

O DBAccess conecta

Inclusão de trecho
dbaccess
dbaccess
nopaneltrue
estabelece uma conexão com os bancos Bancos de dados Dados homologados através de um driver ODBC, para as plataformas Windows e Linux. Para banco de dados , sendo que para o ORACLE, normalmente é usada utilizada uma conexão através de uma biblioteca Client client chamada de " OCI " (Oracle Client Interface). DE qualquer modo

Independente do modo de conexão, para todos os casos, criamos é necessário criar uma fonte de dados que precisa ser identificada por um nome distinto.

Este nome da fonte de dados, ou DSN (Data Source Name), preferencialmente, deve iniciar com uma letra , e pode ter letras e numeros – evite /ou números.

Aviso

Evite usar espaços,

...

símbolos e caracteres especiais no nome da fonte de dados.


Ao configuramos o DBAccess para configurar o

Inclusão de trecho
dbaccess
dbaccess
nopaneltrue
para se conectar com um determinado banco Banco de dadosDados, informamos no DBAccess a ele qual o nome do DSN , ou nome da fonte de dados a ser usadautilizado, que deve ser exatamente o mesmo nome usado na ODBC. Um DBAccess

Informações

Um

Inclusão de trecho
dbaccess
dbaccess
nopaneltrue
pode usar mais de uma fonte de dados

...

e conectar-se com vários bancos de dados diferentes.


É possível configurar, por exemplo, uma fonte de dados apontando para um Database database de Homologação, homologação e outra fonte de dados para um Database database de Testestestes. A aplicação AdvPL acessa o DBAccess

A aplicação 

Inclusão de trecho
advpl
advpl
nopaneltrue
acessa o
Inclusão de trecho
dbaccess
dbaccess
nopaneltrue
através do IP e porta configurados em cada TOTVS Application ServerPorta configurados em cada 
Inclusão de trecho
application server
application server
nopaneltrue
, e informa o banco Banco de dados Dados e o nome da fonte de dados a ser usadautilizada

Internamente, o DBaccess usa

Inclusão de trecho
dbaccess
dbaccess
nopaneltrue
utiliza o nome da fonte de dados informado , para controlar aspectos da emulação ISAM de acesso às tabelas, como o modo de abertura (exclusivo e/ou compartilhado, acesso completo ou somente leitura), bem como o mecanismo de bloqueios de arquivo e registro (bloqueio de registro linha a linha, ou do arquivo inteiro).

Estes controles fazem parte da compatibilidade exigida pelo AdvPL

Inclusão de trecho
advpl
advpl
nopaneltrue
, e são feitos pelo DBAccess
Inclusão de trecho
dbaccess
dbaccess
nopaneltrue
em listas mantidas em memória.

Informações

Quando

...

utilizamos o

Inclusão de trecho
dbaccess
dbaccess
nopaneltrue
em uma configuração distribuída, o serviço configurado como

...

primário (master) fica responsável por esses controles. 


Sabendo dessa característica, sempre devemos criar sempre apenas UMA fonte de dados nomeada (DSN/ODBC ) para UMA determinada instância de Banco de Dados. E, quando utilizamos o DBAccess

Quando utilizamos o

Inclusão de trecho
dbaccess
dbaccess
nopaneltrue
em configuração distribuída, em maus mais de um equipamento, todas as fontes de dados criadas para um determinado database devem ter o mesmo nome em todas as máquinas, para que cada DBAccess Secundário
Inclusão de trecho
dbaccess
dbaccess
nopaneltrue
secundário aponte para a fonte de dados de mesmo nome, que aponta para o mesmo Database. E, sabendo disso, também devemos observar que, não devemos

Aviso

Observe que não deve-se colocar dois serviços distintos de

...

Inclusão de trecho
dbaccess
dbaccess
nopaneltrue
(stand-alone por exemplo), apontando para o mesmo

...

Banco de

...

Dados.

...


Caso essas premissas não sejam respeitadas, a integridade dos dados de tabelas acessadas para alteração de dados em modo concorrente é sériamente seriamente prejudicada, pois dois programas AdvPL

Inclusão de trecho
advpl
advpl
nopaneltrue
podem conseguir ao mesmo tempo um LOCK de registro para alteração, ou mesmo obter sucesso ao tentar abrir uma determinada tabela em modo EXCLUSIVO, caso esses programas estejam sendo executados em
Inclusão de trecho
dbaccess
dbaccess
nopaneltrue
stand-alone distintos que apontem para o mesmo banco de dados, ou no mesmo dbaccess
Inclusão de trecho
advpl
advpl
nopaneltrue
, usando duas fontes de dados de nomes distintos, que na ODBC apontam para a mesma instância de Banco de Dados.

Informações

Caso os programas executados de forma concorrente usem transacionamento (BEGIN TRANSACTION), pode ocorrer deadlock no

...

Banco de

...

Dados