Eseguire le procedure

L’ODBC definisce una sequenza di escape standard per l'eseguire le procedure. Per la sintassi di questa sequenza e un esempio di codice che la utilizza, vedere Chiamate di procedura.

Per eseguire una procedura, un'applicazione compie le azioni seguenti:

  1. Imposta i valori di qualsiasi parametro. Per ulteriori informazioni, vedere Parametri d’istruzione, più avanti in questa sezione.

  2. Chiama SQLExecDirect e gli passa una stringa contenente l'istruzione SQL che esegue la procedura. Quest’istruzione può usare la sequenza di escape definita dalla sintassi specifica ODBC o DBMS; le istruzioni che usano la sintassi specifica DBMS non sono interoperabili.

  3. Quando viene chiamato SQLExecDirect, il driver:

    • Recupera i valori dei parametri correnti e li converte in base alle esigenze. Per ulteriori informazioni, vedere Parametri d’istruzione, più avanti in questa sezione.

    • Chiama la procedura nell'origine dati e trasferisce i valori dei parametri convertiti. Il modo in cui il driver chiama la procedura è specifico del driver. Per esempio, potrebbe modificare l'istruzione SQL per usare la grammatica SQL dell'origine dati e inviare questa istruzione per l'esecuzione, oppure potrebbe chiamare direttamente la procedura usando un meccanismo RPC (Remote Procedure Call) definito nel protocollo del flusso dei dati del DBMS.

    • Restituisce i valori di qualsiasi parametro di input/output, output o del valore restituito della procedura, assumendo che quest’ultima abbia esito positivo. Questi valori potrebbero non essere disponibili fino a quando tutti gli altri risultati (conteggi di righe e set di risultati) generati dalla procedura non sono stati elaborati. Se la procedura ha esito negativo, il driver restituisce eventuali errori.