Riferimento > Funzioni > Funzioni logiche > EseguiSQL
 

EseguiSQL

Esegue un'istruzione di una query SQL per la ricorrenza di tabella specificata in un file FileMaker Pro Advanced.

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 istruzioni SQL SELECT con parametri dinamici per eseguire in modo sicuro query sui database FileMaker Pro Advanced ed evitare pericoli per la sicurezza causati da attacchi Injection.

EseguiSQL non riconosce le relazioni create in FileMaker Pro Advanced, consentendo 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 o l'esecuzione della query, FileMaker Pro Advanced 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 Advanced 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, diverso da quello di FileMaker Pro Advanced 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.

La funzione EseguiSQL utilizza istruzioni SQL SELECT per eseguire query su tabelle in origini dati FileMaker, non ODBC. Per eseguire istruzioni SELECT e altre istruzioni SQL supportate su origini dati ODBC, utilizzare l'istruzione di script Esegui SQL.

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. Sebbene sia possibile utilizzare un calcolo in FileMaker Pro Advanced per generare questo valore, è anche 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 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