SQL: esecuzione di chiamate SQL dirette (ODBC)
In questo argomento:
Quando usare chiamate SQL dirette.
Nota
Queste informazioni sono valide per le classi ODBC MFC. Se si lavora con le classi DAO MFC, vedere l'argomento "Confronto tra Microsoft Jet motore di database SQL e SQL ANSI" nella Guida di DAO.
Quando chiamare SQL direttamente
Per creare nuove tabelle, eliminare (eliminare) tabelle, modificare le tabelle esistenti, creare indici ed eseguire altre funzioni SQL che modificano lo schema ODBC (Data Source), è necessario eseguire un'istruzione SQL direttamente all'origine dati usando DDL (Database Definition Language). Quando si utilizza una procedura guidata per creare un recordset per una tabella (in fase di progettazione), è possibile scegliere le colonne della tabella da rappresentare nel recordset. Ciò non consente colonne aggiunte successivamente alla tabella da parte dell'utente o di un altro utente dell'origine dati, dopo la compilazione del programma. Le classi di database non supportano direttamente DDL, ma è comunque possibile scrivere codice per associare una nuova colonna al recordset in modo dinamico, in fase di esecuzione. Per informazioni su come eseguire questa associazione, vedere Recordset: Dynamically Binding Data Columns (ODBC).
È possibile usare il sistema DBMS stesso per modificare lo schema o un altro strumento che consente di eseguire funzioni DDL. È anche possibile usare chiamate di funzione ODBC per l'invio di istruzioni SQL, ad esempio la chiamata di una query predefinita (stored procedure) che non restituisce record.
Esecuzione di chiamate di funzioni SQL dirette
È possibile eseguire direttamente una chiamata SQL usando un oggetto Classe CDatabase. Configurare la stringa dell'istruzione SQL (in genere in un CString
) e passarla alla funzione membro CDatabase::ExecuteSQL dell'oggetto CDatabase
. Se si utilizzano chiamate di funzione ODBC per inviare un'istruzione SQL che restituisce normalmente record, i record vengono ignorati.