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