Buongiorno a tutti.
Utilizzo MySql 5.0.26 come database. Ho il seguente problema: nella mia applicazione leggo dei dati da alcune tabelle del db tramite oggetti datatable. Converto il contenuto del DataTable in formato XML e poi verso il contenuto in un campo di tipo Blob all'interno di una tabella del database. Sommariamente faccio questo tipo di operazioni:
System.IO.StringWriter tst = new System.IO.StringWriter();
dataset.WriteXml(tst, XmlWriteMode.WriteSchema);
Utilizzo per l'insert nella tabella una query parametrica:
Quando eseguo la query mi va in errore e mi restituisce: "#22001Data too long for column 'BODY' at row 1"
Leggendo un po in giro sulla rete ho visto che si può impostare la dimensione massima dei pacchetti. Ho aggiornato il codice inserendo come istruzione primaria la seguente:
runSQLCommand("set max_allowed_packet=1073741824");
Il valore l'ho preso dalla guida di MySql e dovrebbe rappresentare 1Giga. Controllando a database il valore effettivamente viene modificato ma quando eseguo la query da sempre lo stesso errore.
Ho anche controllato che "System.Text.Encoding.Default.GetBytes(tst.ToString()).LongLenght" non eccedesse la lunghezza massima. Dal controllo immediato mi dice che è 119680 byte, quindi un valore di gran lunga inferiore al limite di 1G.
Come posso risolvere il problema?
Grazie a tutti.
PS in allegato trovate la struttura xml della tabella che provo a scrivere nel campo blob. Sono 70 righe circa.
Cristian Barca