2010-11-15 25 views

Répondre

1

Il ya des informations détaillées sur ce sujet (le côté d'écriture de toute façon) ici: Sending BLOB Data to SQL SERVER Using IROWSETFASTLOAD and ISEQUENTIALSTREAM.

La plupart des échantillons disponibles sont trop simpliste et ne démontrent pas longueur variable de données par ligne ou en utilisant ISequentialStream. Dans cet exemple, vous verrez les deux techniques dans un fichier source . Par défaut, l'exemple montre comment utiliser IRowsetFastLoad à envoyer des données BLOB de longueur variable par ligne en utilisant des liaisons en ligne. Dans ce cas, les données BLOB en ligne doivent correspondre à mémoire disponible. Cette méthode a meilleure performance lorsque les données BLOB est de quelques octets à quelques Mo, car il n'y a aucun flux supplémentaire . Pour les données plus volumineuses, en particulier où les données ne sont pas forcément toutes disponibles à la fois dans un bloc, le streaming est un meilleur choix.

Pour la relecture, il existe un arrière-plan et un exemple de code sur MSDN here.

Le fournisseur OLE SQL Server Native Client DB ne récupère pas de données volumineuses de SQL Server jusqu'à ce que la demande de faire si le consommateur. Le consommateur doit lier toutes les données courtes dans un accesseur , puis utiliser un ou plusieurs accesseurs temporaires pour récupérer les grandes valeurs de données selon les besoins.

+0

l'article est vraiment illisible. il est formulé terriblement .. mais je ne peux pas trouver aucun autre exemple –

+0

Si vous coupez et collez le code dans VS, il est facile de sélectionner et de le formater pour améliorer la lisibilité. Je suis d'accord que ce n'est pas bien agencé mais le conseil de conception (pour écrire au moins) est excellent. –

+0

J'ai trouvé exemple de projet ici: http://msftdpprodsamples.codeplex.com/wikipage?title=SS2008!README%20How%20to%20set%20large%20data%20(OLE%20DB) –