Une alternative à l’utilisation de l’objet DataSet pour importer
des objets BLOB (binary large object) consiste à employer
l’objet ADO.NET Command avec une procédure stockée.
Cette méthode ne nécessite pas d’objet DataSet sur le client,
mais requiert une procédure stockée pré-existante sur le système
SQL Server. Lorsque vous employez des paramètres de
procédure stockée pour accéder à des BLOB, ayez à l’esprit
que le paramètre du BLOB doit figurer en dernier dans l’appel
à la procédure stockée.
Le code suivant illustre une procédure simple intitulée
p_insertimage, qui accepte un paramètre de type de données
image. Le code insère le paramètre dans la table
BLOBTable. (Le schéma de cette table est disponible sur le
site www.itpro.fr Club Abonnés.)
CREATE PROCEDURE dbo.p_insertimage ( @image image) AS SET NOCOUNT ON INSERT INTO BLOBTable (blob_object) VALUES(@image) RETURN GO
Le listing 4 présente le code C# qui appelle cette procédure
stockée. Ce code utilise un objet OleDbConnection
pour ouvrir une connexion vers SQL Server. Il crée ensuite
un nouvel objet FileStream nommé fs, qui ouvre le fichier homer.
jpg et en lit le contenu dans le tableau d’octets nommé
imagefile. Un objet OleDbCommand cmd est alors créé et va
exécuter la procédure stockée p_insertimage, passant les
données BLOB à p_insertimage en tant que paramètres.
L’accès à l’objet BLOB n’est pas limité au seul espace de
nom System.Data.SqlClient. Vous pouvez aussi accéder aux
BLOB en utilisant l’espace de nom System.Data.OleDb,
comme illustré ici, ou encore les espaces de nom
System.Data.OracleClient et System.Data.Odbc.
Pour beaucoup de DSI, le cloud a longtemps été réduit à un projet de migration : déplacer des serveurs on-premise vers un fournisseur externe. Une fois cette étape franchie, la…
Passez à la cybersécurité proactive, transformez la collecte et l’analyse des logs en un bouclier dynamique contre les cybermenaces. Découvrez comment mettre en place une approche SIEM modulaire, évolutive et…