English
Instant Developer Foundation Documentazione
  • Reference Librerie
  • Libreria Database
  • Libreria Standard
  • Funzioni Client

Add Query Substitution

procedura copia link

Scopo

Specifica il testo che occorre sostituire nelle query eseguite su questo database. In questo modo è possibile sostituire in maniera generalizzata delle parti di query, ad esempio per far puntare una query ad un diverso database.

Sintassi

Database.AddQuerySubstitution(stringa da cercare, valore da inserire)

Argomenti

Stringa da cercare Stringa da cercare nel testo della query
Valore da inserire Valore con cui sostituire la stringa trovata

Esempio

// ***************
// Esegue la query
// ***************

public void QueryAnalyzer.Esegui()
{
  // Imposto il tempo di timeout di esecuzione
  NorthwindDB.Timeout := Dati.Timeout
  // 
  // Applico tutte le sostituzioni

  NorthwindDB.ClearQuerySubstitutions()
  for each row
  {
    select
      StringaDaCercareSostituzione := StringaDaCercare
      ValoreDaInserireSostituzione := ValoreDaInserire
    from
      Sostituzioni // Tabella Master
    // 
    record Sostituzione
      string StringaDaCercare // 
      string ValoreDaInserire // 
    // 
    NorthwindDB.AddQuerySubstitution(Sostituzioni.StringaDaCercareSostituzione, Sostituzioni.
      ValoreDaInserireSostituzione)
  }
  // 
  // Svuoto il risultato precedente

  delete from Risultato
  // 
  // Provo ad eseguire l'istruzione SQL

  try
    ...
  catch  // L'esecuzione non è andata a buon fine
    ...
}
  • L'aggiunta di una sostituzione ha effetto su tutte le prossime istruzioni SQL e viene annullata solo con una chiamata alla procedura ClearQuerySubstitutions. Solitamente le sostituzioni vengono impostate all'inizio della sessione, nell'evento Initialize o AfterLogin.
  • Un esempio di possibile utilizzo è il seguente: in una query si deve eseguire il join con una tabella contenuta in un altro database, in questo caso la from list della query potrebbe essere la seguente:
    from Tabella A, §DB§.AltraTabella B
    
    La parte di query §DB§ verrà sostituita prima dell'esecuzione con il nome del database in cui si trova AltraTabella tramite la procedura AddQuerySubstitution.
  • La sostituzione del testo della query avviene automaticamente, a meno delle query contenute nei PreparedStatement, per i quali è necessario usare esplicitamente la funzione ApplyQuerySubstitutions.

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

Vedi Anche

  • Clear Query Substitutions (procedura)
  • Apply Query Substitutions (funzione)
  • Initialize (evento)
  • After Login (evento)
  • Apply Query Substitutions (funzione)

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum