Comment économiser (tous) de SQL server image de type de données de système de fichiers avec l'extension de fichier correct

J'ai différents types de fichiers dans le tableau (txt, doc, jpg, etc) et je veux les sauver tous à mon système de fichiers. Je sais comment le faire fichier par fichier, mais il ne sert à rien, je dois faire une boucle qui enregistre tous les fichiers avec les bonnes extensions à la fois. Des conseils?

Je le fais de cette façon maintenant:

DECLARE @ObjectToken INT
EXEC sp_OACreate 'ADODB.Stream', @ObjectToken OUTPUT
EXEC sp_OASetProperty @ObjectToken, 'Type', 1
EXEC sp_OAMethod @ObjectToken, 'Open'
EXEC sp_OAMethod @ObjectToken, 'Write', NULL, <this is where binary data goes>
EXEC sp_OAMethod @ObjectToken, 'SaveToFile', NULL, 'd:/file.txt', 2
EXEC sp_OAMethod @ObjectToken, 'Close'
EXEC sp_OADestroy @ObjectToken

Donc, ma question serait est-il un moyen de faire cela pour tous les enregistrements (enregistrer tous les fichiers) dans la table db à la fois et avec le réglage de l'extension de fichier pour chaque fichier enregistré?

  • que demandez-vous exactement?
  • Je me demande comment faire pour enregistrer des données binaires (image de type de données) à partir de sql server base de données de système de fichiers en tant que fichiers.
  • votre code ressemble, il est copié à partir de heidibrebels.être/blog/archives/2011/... une raison quelconque vous n'utilisez pas le curseur de la partie, trop?
  • Je n'ai pas de copie à partir de là, donc je ne vois pas la partie avec le curseur. De toute façon, comme je le vois sur heidibrebels.être/blog/archives/2011/... il enregistre tous les fichiers que .jpg, et j'ai un peu de différentes extensions de fichiers. Avez-vous peut-être de savoir comment enregistrer chaque fichier avec une extension propre?
  • Toutes mes excuses pour mon hypothèse. Si vous n'avez pas stocker le nom de fichier d'origine et/ou de l'extension, il n'y a pas de moyen (facile) à les retrouver. Cependant, vous pouvez inspecter les premiers octets du fichier binaire: .jpg commence avec ff d8 ff e0 xx xx "JFIF", .png commence avec xx "PNG" (xx = arbitraire valeur hex), etc
  • J'ai de nom de fichier dans l'autre colonne, il est le chemin complet de l'emplacement à partir duquel le fichier est téléchargé de finition avec le nom de fichier et l'extension. Peut-être que je peux l'obtenir à partir de cette colonne? Avez-vous peut-être de savoir comment le faire? Je vous remercie pour votre aide.

InformationsquelleAutor mustang987 | 2013-03-19