As vezes passamos por algumas provações quando queremos utilizar os recursos do próprio banco de dados, como o comando INSERT ou UPDATE por exemplo. Nos últimos anos, temos passado por várias evoluções no sistema, e um dos maiores problemas é a sua performance. As vezes ficamos horas a fio esperando determinados processos serem executados, pelo simples fato do sistema não utilizar recursos que o banco de dados possue. Mas com o passar do tempo isso vem mudando e o Protheus vai melhorando cada vez mais. O campo R_E_C_N_O_ já é utilizado um bom tempo no sistema Protheus. E na versão 12 ele ganha mais um "plus". É possível utilizando uma opção chamada "Rec.aut.inc", indica se a tabela possuirá o recurso de incrementar automaticamente o campo de controle RECNO, mesmo quando utilizando comandos de inserção SQL que não utilizem comandos de RDD do TopConnect. Antes de mais nada, vamos entender qual é o objetivo do R_E_C_N_O_. Este campo alterar a forma do sistema Protheus gravar o campo R_E_C_N_O_ das tabelas de dados para a modalidade auto-incremental. O campo R_E_C_N_O_ é a chave primária de todas as tabelas de dados do Protheus, sendo único e obrigatório. O conteúdo de R_E_C_N_O_ é atribuído automaticamente pelo TOTVS DBAcess (antigo TopConnect) quando é efetuada uma inserção de linha (registro) através de comandos em sintaxe ADVPL. A modalidade de atualização de R_E_C_N_O_ auto-incremental transfere para o banco de dados a responsabilidade por atribuir o valor de R_E_C_N_O_ através de atributos especializados. Estes atributos variam de banco de dados para banco de dados. Para cada banco de dados em uso, o DBAccess utiliza um tipo de campo ou recurso para implementar o incremento automático do R_E_C_N_O_ :
Banco de Dados | Tipo |
DB2 | IDENTITY |
Informix | SERIAL |
MSSQL | IDENTITY |
MySQL | AUTO_INCREMENT |
Oracle | SEQUENCE AND TRIGGER |
Postgres | SERIAL |
Sybase, OpenEdge e CtreeSQL | Não implementado |