Je publie cette question a un suivi de This question, car le thread ne reçoit pas plus de réponses.Passer d'énormes quantités de données en tant que paramètre hexadécimal (0x123AB ...) d'une procédure stockée clr dans le serveur SQL
J'essaie de comprendre s'il est possible de transmettre en tant que paramètre d'une procédure stockée CLR une grande quantité de données comme "0x5352532F ...". Cela permet d'éviter d'envoyer les données directement à la procédure stockée CLR, au lieu d'envoyer ti à un champ DB temporaire et de le passer en tant que varbinary (max) parmeter à la procédure stockée CLR.
J'ai une triple question:
1) est-il possible, si oui, comment? Disons que je veux passer un fichier pdf à la procédure stockée CLR (pas le chemin, les bits complets qui composent le fichier). Quelque chose comme:
exec MyCLRStoredProcs.dbo.insertfile
@file_remote_path ='c:\temp\test_file.txt' ,
@file_contents=0x4D5A90000300000004000.... --(this long list is the file content)
où InsertFile est une procédure stockée qui écrit sur le chemin du serveur (à file_remote_path) les données binaires comme je passe (file_contents). 2) Y a-t-il un risque de corruption d'adopter cette approche (ou c'est la même approche que SQL Server utilise en coulisse)?
3) comment convertir le contenu d'un fichier dans la représentation hexadécimale « 0x23423 ... »
Merci d'avoir pris le temps de me répondre avec une réponse si complète. Essayons de simuler FILESTREAM sans l'utiliser. J'ai besoin de cela parce que je dois aussi supporter 2005 et de plus j'ai plus de 300 clients et forcer tous à passer à 2008 et la configuration de FILESTREAM pour eux n'est pas une option pour moi. La procédure stockée CLR est nécessaire pour écrire sur le disque dur du serveur (je ne veux pas utiliser xp_cmdshell: plus de 300 utilisateurs, il n'y a pas plus de 300 gestionnaires informatiques qui aiment xp_cmdshell). Passer les octets directement au CLR m'évite l'utilisation d'une table temporaire. Merci pour le lien. Je vais essayer ça. – LaBracca
Je voterais votre réponse mais ma réputation ne le permet pas actuellement. – LaBracca
Maintenant, je peux .... Puissance de la réputation. Merci. – LaBracca