コマンドの構文
SQL Server Native Client OLE DB プロバイダーは、DBGUID_SQL マクロで指定されたコマンド構文を認識します。 SQL Server Native Client OLE DB プロバイダーのために、ODBC SQL、ISO、および Transact-SQL ステートメントの混在する構文が有効な構文であることを指定子で示すことができます。 たとえば、次の SQL ステートメントでは、ODBC SQL のエスケープ シーケンスを使用して、LCASE 文字列関数を指定しています。
SELECT customerid={fn LCASE(CustomerID)} FROM Customers
LCASE 関数は、大文字をすべて小文字に変換した文字列を返します。 ISO の文字列関数 LOWER も同じ操作を実行します。つまり、次の SQL ステートメントは、上記の ODBC ステートメントと同義の ISO ステートメントになります。
SELECT customerid=LOWER(CustomerID) FROM Customers
SQL Server Native Client OLE DB プロバイダーでは、どちらの形式のステートメントも、コマンドのテキストとして指定された際には、正常に処理されます。
ストアド プロシージャ
SQL Server Native Client OLE DB プロバイダーのコマンドを使用して SQL Server ストアド プロシージャを実行するときには、コマンド テキストで ODBC CALL エスケープ シーケンスを使用します。 この操作を行うと、SQL Server Native Client OLE DB プロバイダーでは、SQL Server のリモート プロシージャ コールのメカニズムを使用して、コマンド処理が最適化されます。 たとえば次のような場合、Transact-SQL ステートメント形式ではなく、ODBC SQL ステートメントをコマンド テキストとして使用することをお勧めします。
ODBC SQL
{call SalesByCategory('Produce', '1995')}
Transact-SQL
EXECUTE SalesByCategory 'Produce', '1995'