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
...
}
// 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
procedura