le 08-01-2023 02:05 AM
Bonjour à tous,
Pour la réalisation de mes banc de test, je travail en créant une base de donnée SQL en local directement sur le PC de contrôle. Je stock toute les données qui m'intéresse dedans pour ensuite les récupérer pour la génération d'un rapport de test. La seule chose que je n'arrive pas a stocker dans la base de donnée sont les captures d'écran dont j'ai besoin. Pour le moment je stocke ces captures d’écran dans une dossier et le chemin de la capture dans la base de donnée.
J'aimerais stocker l'image complète directement dans la base de donnée SQL car avec ma méthode actuelle, je suis obligé de créer mes rapports de test en local directement avec le PC du banc de test sinon il ne retrouvera pas l'image pointé par le chemin de fichier stocker dans la base de donnée.
Avez vous une idée de comment faire cela svp? un exemple de VI? et quel Type de data utilisé dans SQL? il y a bien un type "image" mais cela ne fonctionne pas...
Autre info, je travail avec le toolkit "labview database connectivity" pour me connecter à ma base de donnée
Merci d'avance pour votre aide
le 08-01-2023 05:07 AM
je pense que la méthode actuelle est un bon compromis, tu peux faire un peu de recherche pour t'en convaincre, beaucoup ont posé la même question et ça semble possible mais au prix de qlq efforts.
pour chercher sur lava, tape ça dans google : site:lavag.org save image to sql
pour chercher sur le forum ni, tape ça dans google : site:forums.ni.com save image to sql
bon courage
We have two ears and one mouth so that we can listen twice as much as we speak.
Epictetus
08-07-2023 03:33 AM - modifié 08-07-2023 03:43 AM
Salut
C'est tout à fait possible avec un type de donnée varbinary, quelque soit le type de fichier. Voici un exemple de base de données qui sauvegarde des fichiers ZIP. A noter que je sauvegarde aussi un hash MD5 pour éviter de sauvegarder des doublons.
Pour insérer ton fichier, il faut le lire avec le VI "Read binary file",, puis convertir la chaîne de caractère lue en tableau de bytes. Ensuite envoyer ce tableau dans l'entrée data du VI DB Tools Insert Data à la colonne correspondante à varbinary.
Remarque : Mon VI INSERT est modifié dans le printscreen, mais il agit comme l'original.
Edit : La transofrmation en tableau de de bytes est probablement superflue.
Pour le relire plus tard, il faudra faire le chemin inverse, et sauvegarder les bytes dans un fichier avec extension jpg ou autre. Si c'est juste pour de la visualisation, tu peux sauvegarder l'image dans le dossier temporaire.