none
Guardar mas de 255 caracteres de texto RRS feed

  • Pregunta

  • Hola amigos. Por aqui de nuevo en busca de conocimiento.

    Necesito guardar mas de 255 caracteres en un campo de una base de datos Access y este campo lo tengo como memo y formato de texto enriquecido para guardar formato colores etc. Hasta aqui bien.

    Para guardar lo hago con una consulta INSERT  (richtexbox.rtf) y el campo se graba con el formato de texto y todo de maravilla.

    Pero si el texto es algo estenso simplemente lo corta por donde le sale de los cojones y no lo graba todo. Es como si el campo MEMO no admitiese mas de 255 caracteres en vez de los 64000 que promete Access, porque es lo que parece que graba, aunque no los he contado. Y aqui me quedo. He buscado por la red pero no he encontrado el motivo de este comportamiento.

    ¿Alguien me puede decir como grabar, por ejemplo un folio entero en un campo MEMO y luego recuperarlo con un Richtexbos u otro control?

    Gracias y saludos cordiales

     

    viernes, 1 de abril de 2016 1:26

Respuestas

  • El Memo tiene que aceptar más de 255 caracteres. Revisa cómo lo estás grabando, que se tiene que haber escapado algo. Por ejemplo, si lo estás insertando mediante una sentencia parametrizada (como debe ser), puede ser que en la definición del parámetro le hayas puesto que la longitud es 255.
    viernes, 1 de abril de 2016 6:21
  • Efectivamente es una sentencia parametrizada, como se ve en el INSERT. Revisa el fuente que se te ha generado con la definición del TableAdapter (puede que el fichero esté oculto en el explorador de soluciones y tengas que pulsar el botón de "ver todos los archivos"), y fíjate en cómo están declarados los parámetros del InsertCommand. La sospecha es que puede ser que el parámetro tenga una longitud de 255.

    sábado, 2 de abril de 2016 6:27

Todas las respuestas

  • El Memo tiene que aceptar más de 255 caracteres. Revisa cómo lo estás grabando, que se tiene que haber escapado algo. Por ejemplo, si lo estás insertando mediante una sentencia parametrizada (como debe ser), puede ser que en la definición del parámetro le hayas puesto que la longitud es 255.
    viernes, 1 de abril de 2016 6:21
  • Hola Alberto

    Pues realmente no se que he podido dejarme. Se trata de una triste y simple consulta diseñada en el asistente

    INSERT INTO TDatos ( Titulo ,  Grupo ,  Observaciones ) VALUES (?, ?, ?)

    e incorporada al codigo como he hecho otras veces. 

     TdatosTableAdapter.INSERTARAPUNTE(TituloTextBox.Text, GrupoComboBox.Text,Observacionestextbox.Rtf)

    En este caso el control es un Richtextbox, pero en un textbox normal con multilinea activado ocurre lo mismo, por lo que dudaba del campo memo.

    Funciona bien, solo que si el texto del campo Observaciones es algo extenso simplemente lo recorta.

    viernes, 1 de abril de 2016 22:13
  • Efectivamente es una sentencia parametrizada, como se ve en el INSERT. Revisa el fuente que se te ha generado con la definición del TableAdapter (puede que el fichero esté oculto en el explorador de soluciones y tengas que pulsar el botón de "ver todos los archivos"), y fíjate en cómo están declarados los parámetros del InsertCommand. La sospecha es que puede ser que el parámetro tenga una longitud de 255.

    sábado, 2 de abril de 2016 6:27
  •                   

    Efectivamente Alberto, estaba definido a 1024 por eso cuando el texto era extenso recortaba. Pero digo yo

    que si esta es la unica forma de corrregirlo un principiante (y no tan principiante)

    no tiene ninguna ninguna posibilidad de subsanarlo.

    Gracias y hasta siempre

     ourceName="Tdatos" DataTypeServer="DbType.StringFixedLength(255)" DbType="String" 
                         urceName="Tdatos" DataTypeServer="DbType.StringFixedLength(255)" DbType="String" Direction="Input" ParameterName="Grupo"  
                          o" Precision="0" ProviderType="WChar" Scale="0" Size="1024" SourceColumn="Observaciones" SourceC 



    • Editado DiegC sábado, 2 de abril de 2016 11:12
    sábado, 2 de abril de 2016 11:11
  • Vale vale, en las propiedades de la consulta, en el mismo diseñador, se le pueden hacer todas las perrerias que quieras al parametro.

    Gracias a tu acertado apunte ahora puedo grabar y recuperar texto enriquecido sin limitaciones.


    sábado, 2 de abril de 2016 12:26