大きな CLR ユーザー定義型
SQL Server 2005 では、共通言語ランタイム (CLR) のユーザー定義型 (UDT) のサイズは 8,000 バイトに制限されていました。SQL Server 2008 では、この制限が解除されます。CLR UDT はラージ オブジェクト (LOB) 型と同様に扱われるようになりました。つまり、8,000 バイト以下の UDT は SQL Server 2005 の場合と同じように動作しますが、8,000 バイトを超える UDT もサポートされるようになり、そのサイズは "無制限" として報告されます。
詳細については、「大きな CLR ユーザー定義型 (OLE DB)」および「大きな CLR ユーザー定義型 (ODBC)」を参照してください。
使用例
ODBC の場合、大きな UDT のサポートには、UDT 値を実行時データ パラメーターとして個別に送信する機能が含まれています。これは、SQLPutData を使用して行います。
OLE DB の場合、大きな UDT のサポートには、ISequentialStream バインドを使用したサーバーとの間の UDT 値のストリームの送受信機能が含まれています。
8,000 バイト以下の UDT は SQL Server 2005 の場合と同じように動作します。OLE DB では、ISequentialStream バインドを使用して、小さな UDT をストリーム処理することもできます。
場合によっては、ネイティブ コードで CLR UDT のコンテンツを認識する必要がありますが、マネージ オブジェクトのインスタンスを作成する必要はありません。この場合は、カスタムのシリアル化を使用して、サーバーの UDT 値をクライアントで認識される形式に変換することができます。
既存のデータ アクセス コードを使用するアプリケーションの場合は、クライアント側で CLR UDT の動作を利用できます。そのためには、ネイティブ API を使用して UDT を取得し、混合モードのアプリケーションで C++ CLI 相互運用機能を使用して UDT のインスタンスを作成します。