Condividi tramite


Descrizione di parametri

SQLBindParameter include argomenti che descrivono il parametro: tipo SQL, precisione e dimensioni. Il driver usa queste informazioni o metadati per convertire il valore del parametro nel tipo necessario all'origine dati. A prima vista, potrebbe sembrare che il driver sia in una posizione migliore per conoscere i metadati dei parametri rispetto all'applicazione; dopo tutto, il driver può facilmente individuare i metadati di una colonna del set di risultati. Come si evince, questo non è il caso. Per prima cosa, la maggior parte delle origini dati non consente al driver di individuare i metadati dei parametri. In secondo luogo, la maggior parte delle applicazioni conosce già i metadati.

Se un'istruzione SQL è hardcoded nell'applicazione, il writer dell'applicazione conosce già il tipo di ogni parametro. Se un'istruzione SQL viene costruita dall'applicazione in fase di esecuzione, l'applicazione può determinare i metadati durante la compilazione dell'istruzione. Ad esempio, quando l'applicazione costruisce la clausola

WHERE OrderID = ?  

può chiamare SQLColumns per la colonna OrderID.

L'unica situazione in cui l'applicazione non può determinare facilmente i metadati del parametro è quella in cui l'utente immette un'istruzione parametrizzata. In questo caso, l'applicazione chiama SQLPrepare per preparare l'istruzione, SQLNumParams per determinare il numero di parametri e SQLDescribeParam per descrivere ogni parametro. Tuttavia, come indicato in precedenza, la maggior parte delle origini dati non consente al driver di individuare i metadati dei parametri, quindi SQLDescribeParam non è ampiamente supportato.