cs_gautier
Messages postés11Date d'inscriptiondimanche 17 novembre 2002StatutMembreDernière intervention24 avril 2007
-
23 avril 2007 à 13:53
cs_gautier
Messages postés11Date d'inscriptiondimanche 17 novembre 2002StatutMembreDernière intervention24 avril 2007
-
24 avril 2007 à 14:14
Salut à tous,
Voici mon problème j'utilise la serialisation XML pour enregistrer les sauvegardes de mon application dans une base de données.
La commande INSERT (respectivement UPDATE) est générée et appelée sous forme de chaine de caractère et j'utilise la méthode SqlCommand.ExecuteNonQuery() pour l'exécuter sur le serveur MSSQL.
La requête SQL ressemble à qqch du genre
"UPDATE tblN2Saves SET value='<?xml version="1.0" encoding="utf-16"....' WHERE SaveId='2daf342qvas42'".
Mon problème se trouve être que l'objet que je serialize fais peter la limite de longeur d'une string sous une architecture 32bits. Je me retrouve avec des erreurs du type OutOfMemory empêchant ma sauvegarde... La serialisation se fait comme ceci:
public static String serialize(MyClass instance)
{
StringBuilder sb = null;
if (instance== null) return String.Empty;
XmlSerializer xs = new XmlSerializer(typeof(MyClass ));
sb = new StringBuilder();
xs.Serialize(new StringWriter(sb), instance);
return sb.ToString();
}
Je souhaite donc supprimer l'utilsiation de cette String et la remplacer par autre chose, la est le problème... Existe-t-il des "stream" pour les DB comme il existe pour un fichier ou un flux réseaux. Ou est-ce que je dois créer un fichier sérialisé sur le disque de la machine et par la suite l'envoyer dans un champ BLOB sur mon SQLServer?
Je suis ouvert à toute propositions de votre part, les seules contraintes sont 32bits, C# 2.0, MSSQL 2000, Application Windows Forms et un object (Collection) d'un très grande taille.