Bonjour à tous,
Je souhaite dans mon VBS, faire un INSERT dans une table "t_message" d'une base de données Mysql. Le but de cette requête est d'archiver un fichier stocké sur mon disque dur en base, je souhaite donc insérer son contenu binaire.
Voici ma table "t_message" avec le champ BLOB "contenu" :
J'ai donc trouvé une fonction me retournant le flux binaire du fichier passé en paramètre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 CREATE TABLE `t_message` ( `id_message` int(10) unsigned NOT NULL auto_increment, `from_message` varchar(200) default NULL, `to_message` varchar(200) default NULL, `objet_message` varchar(300) default NULL, `date_message` datetime default NULL, `recup_message` tinyint(1) unsigned NOT NULL default '0', `from_dns_message` varchar(200) default NULL, `taille_message` int(10) unsigned default '0', `id_contenu` int(10) unsigned default NULL, `contenu` blob, PRIMARY KEY (`id_message`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
J'essaye donc de construire ma requête avec un simple string :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Function ReadBinaryFile(FileName) Const adTypeBinary = 1 'Create Stream object Dim BinaryStream Set BinaryStream = CreateObject("ADODB.Stream") 'Specify stream type - we want To get binary data. BinaryStream.Type = adTypeBinary 'Open the stream BinaryStream.Open 'Load the file data from disk To stream object BinaryStream.LoadFromFile FileName 'Open the stream And get binary data from the object ReadBinaryFile = BinaryStream.Read End Function
Je ne suis pas spécialement étonné que ça ne marche pas (étant donné que j'insère du binaire dans un string). Cependant je ne vois pas comment faire...Peut être faudrait t'il passer par l'objet Command et Parameter...Si quelqu'un a une idée...un exemple...??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 set objConnect = CreateObject("ADODB.Connection") objConnect.Open "test_mysql" req = "Insert into T_Message (from_message, to_message, objet_message,date_message, from_dns_message, taille_message, id_contenu, contenu) values ('" & from_message & "','" & to_message & "','" & objet_message & "','" & date_message & "','" & from_dns_message & "'," & taille_message & "," & id_contenu & ", " & ReadBinaryFile("c:\test.jpg") & ");" objConnect.Execute req
Merci pour votre aide
Partager