FAQ Scan-IT to Office
Connecteur de base de données intelligent : comment insérer des images dans SQL Server
Connecteur de base de données intelligent : comment insérer des images dans SQL Server
Votre besoin : je veux recevoir des images dans ma base de données.
Solution : les images sont transmises au connecteur de base de données intelligent sous forme de chaîne Base64. Cette chaîne peut être convertie en interne en image par SQL Server. Vous trouverez ci-dessous un exemple de solution :
- Créez deux champs de données :
- pour une chaîne Base64 (nvarchar(MAX), autorise les nulls), p. ex. ImageBase64
- pour des données binaires (varbinary(MAX), autorise les nulls), p. ex. ImageBinary
Voici une définition d'une base de données d'exemple « TestTable » dans SQL Server 2005+
- Utilisez l'instruction SQL INSERT INTO dans le connecteur de base de données intelligent pour envoyer les données d'image depuis l'application (le champ de données « Image ») vers le champ « ImageBase64 » de la base de données « TestTable » :
INSERT INTO TestTable (Data, ImageBase64) VALUES (%Barcode%, %Image%)
- La conversion en image peut ensuite être effectuée dans une procédure stockée TRIGGER invoquée par un événement INSERT. P. ex. :
CREATE TRIGGER dbo.ConvertImageOnInsert ON dbo.TestTable AFTER INSERT AS BEGIN UPDATE TestTable SET ImageBinary = CAST('' AS XML).value('xs:base64Binary(sql:column("i.ImageBase64"))', 'VARBINARY(MAX)') FROM TestTable t INNER JOIN inserted i ON t.ID = i.ID END GO