English
Instant Developer Foundation Documentazione
  • Note di rilascio
  • Instant Developer Foundation
  • Versioni precedenti
  • Versione 9.5.4160
  • Correzioni

ORA: Ultimo valore di campi counter in stored procedure

copia link

Descrizione del difetto

Errore nella generazione del codice di una stored procedure se veniva utilizzata una variabile per leggere il valore di una query di inserimento. Tale malfunzionamento si verificava solo se:

  • veniva utilizzato il database Oracle;
  • veniva richiesto ad Instant Developer di rileggere il valore di un campo contatore da una query di inserimento contenuta in una stored procedure;
  • il campo contatore non avesse il flag Automatico attivato;
  • la variabile venisse utilizzata all'interno di un'altra query all'interno della stessa procedura.
Instant Developer, in questo caso particolare, creava una nuova variabile il cui Codice era uguale al codice dl campo contatore. Infatti, la nuova variabile, aveva anch'essa il flag Automatico non attivo e lo stesso codice del campo contatore. Se veniva utilizzata questa variabile all'interno di un'altra query si potevano ottenere effetti indesiderati. Il seguente esempio chiarisce il problema:


Come mostrato nell'esempio la variabile ID, utilizzata per rileggere il valore del campo counter dopo l'inserimento, possedeva lo stesso codice del campo contatore. Se la variabile veniva poi utilizzata, per esempio, in una clausola Where di un'altra query nella stessa procedura, il codice generato era ambiguo (vedi where IDDATO = IDDATO).

A partire dalla versione 9.5 le variabili di questo tipo hanno sempre il flag Automatico attivato ed il codice, in questo caso, viene così calcolato:

  v_[CODICEAUTOMATICO]
dove CODICEAUTOMATICO corrisponde al nome della variabile senza spazi e caratteri non utilizzabili come nome logico degli oggetti su database.

Effetti del malfunzionamento

  • La nuova variabile non aveva il flag Automatico attivo ed il codice della variabile coincideva con quello del campo di cui veniva riletto il valore. Qualora la variabile fosse stata utilizzata all'interno di un'altra query si potevano ottenere effetti indesiderati.

Soluzioni

Questo difetto è stato risolto nella versione 9.5. Usando le versioni precedenti è sufficiente attivare il flag Automatico nella videata delle proprietà della variabile. In alternativa è sufficiente specificare un codice che non coincida con nessuno dei campi delle tabelle utilizzate nelle query in cui viene utilizzata la variabile.

Funzionalità interessate

L'utilizzo di variabili in stored procedure su database Oracle qualora le variabili siano utilizzate per rileggere il valore di un campo contatore.

Note

  • Questo difetto si manifesta solo utilizzando il database Oracle. Gli altri database, infatti, richiedono un apposito prefisso per le variabili che rendono impossibile l'ambiguità.
  • Malfunzionamento relativo alla segnalazione 000474-2010.

Ultima modifica: 08/10/2010 / Validità: da 9.5.4160

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum