Buffer posticipati
Un buffer posticipato è un buffer il cui valore viene usato in un determinato momento dopo che viene specificato in una chiamata di funzione. Ad esempio, SQLBindParameter viene usato per associare o associare un buffer di dati a un parametro in un'istruzione SQL. L'applicazione specifica il numero del parametro e passa l'indirizzo, la lunghezza dei byte e il tipo del buffer. Il driver salva queste informazioni ma non esamina il contenuto del buffer. Successivamente, quando l'applicazione esegue l'istruzione, il driver recupera le informazioni e le usa per recuperare i dati dei parametri e inviarli all'origine dati. Di conseguenza, l'input dei dati nel buffer viene posticipato. Poiché i buffer posticipati vengono specificati in una funzione e usati in un'altra, liberare un buffer posticipato mentre il driver lo prevede ancora è un errore di programmazione dell'applicazione; per altre informazioni, vedere Allocazione e liberazione di buffer, più avanti in questa sezione.
I buffer di input e di output possono essere posticipati. Nella tabella seguente vengono riepilogati gli usi dei buffer posticipati. Si noti che i buffer posticipati associati alle colonne del set di risultati vengono specificati con SQLBindCol e i buffer posticipati associati ai parametri dell'istruzione SQL vengono specificati con SQLBindParameter.
Utilizzo dei buffer | Type | Specificato con | Usato da |
---|---|---|---|
Invio di dati per i parametri di input | Input posticipato | SQLBindParameter | SQLExecute SQLExecDirect |
Invio di dati per aggiornare o inserire una riga in un set di risultati | Input posticipato | SQLBindCol | SQLSetPos |
Restituzione di dati per i parametri di output e input/output | Output posticipato | SQLBindParameter | SQLExecute SQLExecDirect |
Restituzione dei dati del set di risultati | Output posticipato | SQLBindCol | SQLFetch SQLFetchScroll SQLSetPos |