none
Campo para Ingresar un PDF RRS feed

  • Pregunta

  • Buen día señores.

    Una vez más, consultando su sapiencia y buena voluntad.

    Resulta ser que tengo una base de datos con SQL servrer, en la cual hay tabla donde estoy colectando información de clientes, entonces me solicitan que se pueda ingresar un archivo PDF preferentemente, si no se puede, entonces un JPG.

    Entonces, la pregunta concreta: Como modifico mi tabla en la base de datos para que se pueda ingresar un PDF, o en su defecto, si es necesario crear una tabla alterna donde se ingrese el pdf y código de cliente, para poder enlazarla. Ustedes me dirán.

    Saludos y gracias


    Ing. José Elías Pelayo

    martes, 23 de julio de 2019 1:15

Respuestas

  • me hace "algo de ruido" lo del array de bytes

    No creas, es muy corriente e incluso muy sencillo de usar, a no ser que estés construyendo a mano las sentencias SQL concatenando los datos, entonces es muy difícil. Pero si estás usando DataSets y DataAdapter, o Linq-to-sql, o Entity Framework, entonces todo es automático. Te genera un campo de tipo array de bytes y lo tratas como una variable cualquiera, asignándole el array que leíste del archivo igual que si estuvieses asignando un integer o un string.
    • Marcado como respuesta eliaspelayo jueves, 25 de julio de 2019 2:00
    martes, 23 de julio de 2019 15:00

Todas las respuestas

  • Se puede añadir un campo para el pdf en la misma tabla, o bien puedes usar otra tabla relacionada para añadir el campo si es que prefieres tenerlo por separado. Desde el punto de vista del campo y del código que lo gestiona da igual que sea la misma tabla u otra.

    El tipo de campo que hay que usar se llama VARBINARY(MAX) en SQL Server.

    Desde el punto de vista del código cliente que escribas en Visual Studio, el campo aparecerá como "array de bytes". Para almacenar el PDF primero tienes que cargarlo desde el archivo a un array de bytes en memoria (por ejemplo, puedes usar File.ReadAllBytes), y luego ese array de bytes lo salvas en el campo de la base de datos.

    martes, 23 de julio de 2019 5:57
  • Bien, gracias por responder.

    Ahora por la tarde voy a intentarlo, a ver como me va. Aunque me hace "algo de ruido" lo del array de bytes, a ver como me va. Una vez más agradezco y estaré comunicando el resultado.

    Saludos


    Ing. José Elías Pelayo

    martes, 23 de julio de 2019 12:51
  • me hace "algo de ruido" lo del array de bytes

    No creas, es muy corriente e incluso muy sencillo de usar, a no ser que estés construyendo a mano las sentencias SQL concatenando los datos, entonces es muy difícil. Pero si estás usando DataSets y DataAdapter, o Linq-to-sql, o Entity Framework, entonces todo es automático. Te genera un campo de tipo array de bytes y lo tratas como una variable cualquiera, asignándole el array que leíste del archivo igual que si estuvieses asignando un integer o un string.
    • Marcado como respuesta eliaspelayo jueves, 25 de julio de 2019 2:00
    martes, 23 de julio de 2019 15:00