Riferimento > Funzioni > Funzioni logiche > EseguiSQL
 
EseguiSQL
Scopo 
Esegue un'istruzione di una query SQL per la ricorrenza di tabella specificata in un file FileMaker Pro.
Formato 
EseguiSQL ( querySQL ; separatoreCampo ; separatoreRiga { ;argomenti... } )
Parametri 
querySql - un'istruzione SELECT SQL. L'istruzione può comprendere una clausola Union che combina i risultati delle due query. L'istruzione può contenere SQL generate programmaticamente (parametri dinamici) che indicano dove utilizzare argomenti opzionali nella query. Utilizzare il punto di domanda (?) per specificare un parametro dinamico.
separatoreCampo - la stringa di carattere utilizzata come separatore tra i campi nel risultato. Se viene specificata una stringa vuota, il separatore è una virgola. Il separatore di campo non viene visualizzato dopo l'ultimo campo nel risultato.
separatoreRiga - la stringa di carattere utilizzata come separatore tra i record nel risultato. Se viene specificata una stringa vuota, il separatore è un ritorno a capo. La riga separatore non viene visualizzata dopo l'ultima riga nel risultato.
argomenti - una o più espressioni valutate e utilizzate come valori per i parametri dinamici nell'istruzione della query.
Tipo di dati riportato 
Testo
Creata in 
FileMaker Pro 12.0
Descrizione 
EseguiSQL consente di eseguire delle istruzioni SQL SELECT che contengono parametri dinamici per interrogare in modo protetto i database di FileMaker Pro al fine di evitare debolezze di protezione causate da attacchi Injection.
EseguiSQL non riconosce le relazioni create in FileMaker Pro e questo consente di definire con flessibilità le relazioni nelle istruzioni SQL e di recuperare i dati da qualsiasi tabella, indipendentemente dal contesto del formato.
EseguiSQL non può essere utilizzata con le istruzioni SQL che modificano dati o schemi del database (come i comandi Inserisci in o Elimina tabella).
Se si verifica un errore durante l'analisi della query o durante l'esecuzione, FileMaker Pro restituisce ?.
Note 
Per applicare la formattazione corretta alle date di una query SQL, utilizzare l'istruzione DATA. Se non si utilizza l'istruzione DATA, EseguiSQL gestisce le date come stringhe di testo.
FileMaker Pro restituisce la data, l'ora e i numeri in formato Unicode/SQL, non nel formato locale del sistema operativo o del file.
EseguiSQL accetta soltanto la sintassi SQL-92 con data e ora in formato ISO, senza parentesi. EseguiSQL non accetta le costanti di data, ora e indicatore data e ora in formato ODBC/JDBC tra parentesi.
FileMaker SQL utilizza il criterio di ordinamento binario Unicode, che è diverso da quello di FileMaker Pro utilizzato con l'ordinamento in base alla lingua o con il criterio di ordinamento predefinito dal linguaggio neutrale.
Per ulteriori informazioni su sintassi dell'istruzione SELECT, istruzioni SQL supportate, espressioni e funzioni di catalogo, vedere la Guida ODBC e JDBC di FileMaker e la Guida SQL di FileMaker.
Esempio 1 
Si supponga un database che contiene due tabelle, Dipendenti e Stipendi, messi in relazione per mezzo del campo IDDip.
Equazione
Nota  I campi Dipendenti::IDDip, Stipendi::IDDip e Stipendi::Stipendio sono campi Numero.
È possibile utilizzare la funzione EseguiSQL per restituire un valore del campo da un record specifico senza cambiare il record corrente o modificare il gruppo trovato.
EseguiSQL ( "SELECT Reparto FROM Dipendenti WHERE IDDip = 1" ; "" ; "" ) restituisce Sviluppo indipendentemente dal record, gruppo trovato o formato corrente.
Esempio 2 
Si supponga di voler aggiungere un campo alla tabella Dipendenti che mostri la percentuale dello stipendio di un dipendente rispetto al totale degli stipendi di un reparto. Nonostante si possa utilizzare un calcolo di FileMaker Pro per generare questo valore, è possibile utilizzare la funzione EseguiSQL per specificare questa query utilizzando parametri dinamici. L'esempio di seguito utilizza alias di tabella per la tabella Dipendenti (E) e la tabella Stipendi (S) per specificare i campi (S.Stipendio, E.IDDip e S.IDDip).
Si definisce un campo di calcolo nella tabella Dipendenti, quindi si utilizza la funzione EseguiSQL per specificare la seguente istruzione di query:
Arrotonda (
   100 * Stipendi::Stipendio / EseguiSQL (
      "SELECT SUM (S.Stipendio)
      FROM Dipendenti E
      JOIN Stipendi S
      ON E.IDDip = S.IDDip
      WHERE E.Reparto = ?";
      ""; ""; Dipendenti::Reparto
   ) ;
2 )
Su ogni record dipendenti, il campo Calcolo mostra la percentuale dello stipendio di un dipendente rispetto alla somma degli stipendi del reparto del dipendente. Ad esempio, il record con Cognome "Smith" restituisce 52.97, e il record con Cognome "Mehmet" restituisce 100.
Argomenti correlati 
Funzioni (per categoria)
Funzioni (in ordine alfabetico)
Informazioni sulle formule
Informazioni sulle funzioni
Definizione di campi Calcolo
Utilizzo di operatori nelle formule