SQL: esecuzione di chiamate SQL dirette (ODBC)
In questo argomento vengono fornite informazioni su:
Quando eseguire chiamate SQL dirette
Esecuzione di chiamate dirette alle funzioni SQL
[!NOTA]
Queste informazioni si riferiscono alle classi ODBC MFC.Se si utilizzano le classi DAO di MFC, vedere l'argomento relativo al confronto tra la sintassi SQL del modulo di gestione di database Microsoft Jet e quella ANSI nella Guida di DAO.
Quando eseguire chiamate SQL dirette
Per creare nuove tabelle, eliminare o modificare tabelle esistenti, creare indici ed eseguire altre funzioni SQL che modifichino lo schema dell'Origine dati (ODBC), è necessario inviare direttamente un'istruzione SQL all'origine dati tramite DDL (Database Definition Language).Quando si crea un recordset per una tabella in fase di progettazione mediante una procedura guidata, è possibile scegliere le colonne della tabella da rappresentare nel recordset.Questa operazione non è consentita per le colonne aggiunte alla tabella in un secondo momento da un utente dell'origine dati, dopo la compilazione del programma.Le classi di database infatti non supportano direttamente DDL, anche se è comunque possibile scrivere codice per l'associazione dinamica di una nuova colonna al recordset in fase di esecuzione.Per informazioni su come effettuare l'associazione, vedere Recordset: associazione dinamica di colonne di dati (ODBC).
È possibile utilizzare lo stesso DBMS per modificare lo schema oppure un altro strumento che consenta di eseguire le funzioni DDL.È inoltre possibile utilizzare le chiamate alle funzioni ODBC per l'invio delle istruzioni SQL, ad esempio la chiamata a una query già definita (stored procedure) che non restituisce record.
Esecuzione di chiamate dirette alle funzioni SQL
È possibile eseguire una chiamata SQL diretta mediante un oggetto Classe CDatabase.È necessario impostare la stringa dell'istruzione SQL, in genere in CString) e passarla nella funzione membro CDatabase::ExecuteSQL dell'oggetto CDatabase.Se si utilizzano chiamate a funzioni ODBC per l'invio di un'istruzione SQL che in genere restituisce record, tali record vengono ignorati.