Estrutura de Banco de Dados
Escolha da Unit para Criação de Tabelas
A unit utilizada para criar a tabela depende do seu escopo de uso:
CriaTabEsp.pas: utilizada para tabelas específicas de um módulo.CriaTab.pas: utilizada para tabelas compartilhadas entre todos os módulos do sistema.
Se a tabela for utilizada apenas por um módulo, ela deve ser criada na CriaTabEsp.pas. Caso seja utilizada por mais de um módulo, deve ser criada na CriaTab.pas.
Exclusão de Campos
ou Tabelas
AoQuando um campo ou tabela deixar de utilizarser um campo,utilizado, ele não deve ser removido da unit de criação da tabela e não deve ser executado nenhum comando SQL de exclusão (DROP).
OA campoestrutura deve permanecer naintacta estruturano dabanco tabela,de dados, mesmo sem utilização pelo sistema.
Escolha Alteraçda Unit para Criação de Tabelas Específicas de Módulos
SempreA queunit houverutilizada umapara alteraça criação emde uma tabela criada na CriaTabEsp.pas, também é necessáriodefinida adicionarpelo aseu chamadaescopo correspondentede na unit uMatrizAlt do módulo.
Exemplos:uso:
CriaTabEsp.pas:
para tabelas específicas de um único módulo.Compras:UtilizadauMatrizAltCCCriaTab.pas:
paraVendas:UtilizadauMatrizAltVDtabelas - compartilhadas
dois ou mais módulos do sistema.Financeiro:entreuMatrizAltFN
Atualização e Versionamento de Tabelas
Cenário A: Tabelas de Módulo Único (CriaTabEsp.pas)
EssaAo chamadacriar garanteou quemodificar uma tabela de módulo único, é obrigatório registrar a alteração sejana aplicadaunit duranteuMatrizAlt__.pas acorrespondente ao módulo modificado, informando o método de atualização e o número da baseversão.
- Exemplo Prático (Módulo de
dados.ComprasAlém-disso,CC):tambémSeéumanecessárionovaseguircolunaosforprocedimentosadicionadadescritosanaumaseçãotabelaCriaçãoexclusiva de Compras, você deve acessar a unituMatrizAltCC.paseAlteraçãoincluirdeaCampos.chamada:
AlteraçãoAddMatrizAlt('PLANFISC', de'5.194');
Cenário B: Tabelas Compartilhadas entre Módulos
(AddMatrizAlt('PLANFISC', de'5.194');CriaTab.pas)
ParaQuando tabelasuma criadastabela nacompartilhada unitfor CriaTab.pas,criada quandoou houvermodificada, alterações
desenvolvedor
, é necessáriodeve identificar quaistodos os módulos serão afetados e realizarreplicar a chamada nasde suasatualização respectivasem todas as units uMatrizAlt.uMatrizAlt__.pas desses respectivos módulos.
Para
Como identificar os módulos impactados,afetados:
- Acesse a unit
DDL.Classes.pas. - Busque pelo nome da tabela para encontrar onde ela está registrada. Você encontrará uma estrutura semelhante a esta:
AddTabela(AMatriz, 'PLANFISC', 'Plano Fiscal');
- Verifique, dentro das procedures
CriaMatrizSistemas__, quais delas fazem uso dessa tabela. - Para cada módulo identificado, adicione a chamada
AddMatrizAltcom o número da versão na sua respectiva unit de alteração.
DDL.ClassesExemplo Prático: Você adicionou um novo campo na tabelaPLANFISC(alterando aCriaTab.pas).NelaAoestãobuscar porPLANFISCna unitDDL.Classes.pas, você identificou que ela é utilizada pelas seguintes procedures:CriaMatrizSistemasCC(Módulo CC)CriaMatrizSistemasEX(Módulo EX)CriaMatrizSistemasVD(Módulo VD)
Portanto, você deverá abrir as
classunitsproceduresuMatrizAltCC.pas,responsaveisuMatrizAltEX.paspelaecriacaouMatrizAltVD.pasdasetabelasadicionar a chamada de atualização em cadamodulo.uma delas:Exemplo:
AddMatrizAlt('PLANFISC', CriaMatrizSistemasLF '5.194');
Atenção:
cadapelamódulo criaçãpossui um número de versão ediferente. atualizaçãCaso tenha dúvidas, consulte o guia de como identificar o número da estrutura das tabelas. As alterações realizadas na tabela devem possuir os ajustes correspondentes nessa unit, garantindo que sejam aplicadas corretamente nas bases já existentes.
Criação e Alteraçãversão de Campos
cada Aomódulo criar uma nova tabela ou adicionar campos em uma tabela existente, é necessário verificar a unit DDL.Classes.
Nela estão as classes responsáveis pela criação e atualização da estrutura das tabelas. As alterações realizadas(disponível na tabelaoutra devem possuir os ajustes correspondentes nessa unit para que sejam aplicadas corretamente nas bases já existentes.wiki).