Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour à tous,
Voici mon problème.
Je viens de développer un écran qui doit produire des fichiers XML.
Et si cette création s'est bien déroulé, insérer le contenu de ce fichier XML dans la base de données.
J'ai dans ma table en base de donnée un champs de type BLOB pour recevoir le contenu de ce fichier, car certains fichiers sont assez volumineux.
L'écriture du fichier XML se déroule sans encombre et j'écris le fichier en LineMode!
Je le ferme evidemment une fois terminé. Jusque la... Aucun soucis!
Ensuite, viens le stockage du fichier dans la DB, étant donné que mes collones en DB sont de type BLOB, voici le code que j'utilise (trouvé dans l'help de PB...)
Integer XmlFileBlob Blob XmlDataBlob XmlFileBlob = FileOpen(XmlFilePath + FileName + '.xml', StreamMode!) //XmlFilePath + FileName + '.xml' étant evidemment le nom de mon fichier, il est correct, j'ai déja vérifier... If(XmlFileBlob = -1) Then RETURN -1 // = ERREUR End IF FileReadEx(XmlFileBlob, XmlDataBlob) FileClose(XmlFileBlob) // ....... // Et la mise à jour (elle no pose pas de problème, j'ai réussi à la tester sur un cas correct... UpdateBlob OR_DOCAFF Set XML_DONNEES = :XmlDataBlob Where NO_AFFILIE = :IdClef And NO_SEQ_DOCUMENT = :NoSeqDocAff Using SQLCA; If(SQLCA.SQLNRows > 0) Then COMMIT Using SQLCA; Else ROLLBACK; // Oui car un Insert a également eu lieu juste avant... RETURN -1 End IF
Bon, et l'erreur vient en fait de la ligne :
FileReadEx(XmlFileBlob, XmlDataBlob)
Sa valeur de retour = -100, j'ai pu lire dans l'help que la cause vient d'un EOF rencontré en début de fichier... Mais je ne vois pas pourquoi il rencontrerai un EOF en début de fichier... D'ailleurs je n'en vois pas avec NotePad ++
Qqn aurait-il une idée à me proposer?
Merci d'avance.
Bàv
Hors ligne
Pour info, j'ai trouver la solution.
C'était une erreur de ma part, dans l'exemple que je vous ai donné, j'utilisais un seul updateblob. Mais je vous ai recopier qu'une seule partie du code, et en fait, j'essayais de faire 2 update de blob dans un seul updateblob...
Ce qui ne fonctionne pas... C'est bon à savoir.
Par contre, encore une petite question, j'ai essayer également d'utiliser les champs de type CLOB.
Et lorsque j'utilise ce type de champs, dans ma DB, j'ai tous des "?" inversés... Impossible de stocker quoi que ce soit...
Encore merci d'avance...
Bàv...
Hors ligne