English
Instant Developer Foundation Documentazione
  • Note di rilascio
  • Instant Developer Foundation
  • Versioni precedenti
  • Versione 8.5.3800
  • Novità

DB: Modifica a procedure, viste e trigger

copia link

Descrizione

Instant Developer permette di applicare modifiche ai database contenuti nel progetto. Per farlo è sufficiente selezionare la voce "Modifica la struttura attuale" nella videata delle opzioni di compilazione del database:


Videata delle opzioni di compilazione del database.

La compilazione di un database genera un file con estensione .DDL, creato nella stessa cartella del progetto Instant Developer, che viene eseguito sul database solo se è attivo anche il flag "Costruisci Database". Tale file .DDL contiene, nel caso di modifica della struttura esistente, tutte le operazioni SQL necessarie a riallineare la struttura del database con quella presente all'interno del progetto Instant Developer.

Le versioni precedenti di Instant Developer generavano sempre il codice SQL delle viste, delle stored-procedure e stored-function e dei trigger anche se tali viste, procedure, funzioni e trigger non erano cambiati. Inoltre tali istruzioni SQL dapprima eliminavano l'oggetto dal database per poi ricostruirlo. Tale operazione non era in sé sbagliata però:

  • Non dava la possibilità al programmatore di sapere se la vista, procedura o trigger era effettivamente cambiata dall'ultima volta che il database era stato allineato con quello presente nel progetto.
  • Poiché gli oggetti venivano dapprima eliminati e poi ricostruiti, potevano esserci problemi di diritti se le procedure erano state create con un utente diverso da quello utilizzato per la modifica del database.
Pertanto a partire dalla versione 8.5, Instant Developer opera in modalità differenziale anche nel caso di viste, trigger, stored-procedure e stored-function. Ora Instant Developer calcola, tramite un particolare algoritmo, un valore che associa al testo corrente della vista/trigger/procedura/funzione. Poi memorizza tale valore nella tabella ZZ_OBJECTS. Se viene modificato uno di questi oggetti, tale valore cambia ed Instant Developer genera il codice SQL necessario alla modifica dell'oggetto.

E' stato apportato un ulteriore miglioramento alla procedura di modifica della struttura del database. Ora, poiché le informazioni riguardanti viste, trigger e stored-procedure sono contenute nella tabella ZZ_OBJCTS Instant Developer può sapere se un determinato oggetto non è più presente nel progetto e può eliminarlo qualora non sia più necessario. Per esempio se viene eliminato un trigger e viene eseguita la procedura di modifica del database, Instant Developer eliminerà il trigger dal database. Lo stesso vale per le viste e le stored-procedure e stored-function. Tale operazione non veniva eseguita dalle versioni precedenti di Instant Developer generando problemi se il trigger non veniva manualmente rimosso.

Variazioni alla procedura di Modifica struttura

  • VISTE: In caso di modifica non viene più usato il comando SQL drop view/create view ma viene usato su database ORACLE il comando create or replace view mentre su database SQLSERVER e MYSQL il comando alter view. I database ACCESS, ODBC e DB2 non gestiscono la modifica alle viste. Il database POSTGRES gestisce il comando create or replace view ma solo se non cambia né il numero né il tipo delle colonne della vista. Pertanto si è scelto di utilizzare la vecchia modalità di modifica.
  • TRIGGER: I trigger sono supportati solo su database SQLSERVER ed ORACLE. In caso di modifica non viene più utilizzato il comando SQL drop trigger/create trigger ma viene utilizzato il comando alter trigger su database SQLSERVER. Su database ORACLE viene utilizzato il comando create or replace trigger.
  • STORED-PROCEDURE e STORED-FUNCTION: Le store-procedure e stored-function sono supportate solo su database SQLSERVER ed ORACLE. In caso di modifica non viene più utilizzato il comando SQL drop procedure/create procedure e drop function/create function ma viene utilizzato il comando alter procedure e alter function sul database SQLSERVER ed il comando create or replace procedure e create or replace function su database ORACLE.

Funzionalità interessate

La modifica della struttura di un database contenuto in un progetto Instant Developer.

Ultima modifica: 23/03/2021 / Validità: da 8.5.3800

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum