none
Insertar Imagen En SQL Server 2000 RRS feed

  • Pregunta

  • SQL Server 2000

    Hola a todos

    Pues eso:

    1º ¿Cómo se define un Campo en la instrucción CREATE TABLE para almacenar una Imagen. Qué tipo de dato, se indica un tamaño, etc.?

    2º Desde un Formulario en Visual C# 2008, ¿cómo se recupera dicha imagen?

    Desde ya Muchíaimas Gracias


    Skar.2007
    jueves, 1 de septiembre de 2011 3:50

Respuestas

  • Si te toca hacerlo en SQL Server 2000 (y no queda de otra), debes definir un tipo de datos <<Image>>:

     

    CREATE TABLE MiTabla(
    
    columna1 int not null ...
    
    columnaImagen IMAGE NULL)

     

    En el siguiente enlace hay un articulo completo que coincide con lo que requieres (formulario para recuperar imagen), el autor es Leandro Tutinni (al final del articulo esta el código para C# y VB .Net):

    http://ltuttini.blogspot.com/2011/02/winforms-edicion-empleados-grabar.html

     

    Espero te sea de utilidad, cualquier duda con gusto te apoyamos.

     


    "El talento es una disciplina tenaz y una larga paciencia"  Gustave Flaubert

     Email: info@geohernandez.com Blog: geeks.ms/blogs/ghernandez

    jueves, 1 de septiembre de 2011 4:26
  • Se puede copiar un texto único o el valor de la imagen dentro o fuera de SQL Server utilizando la utilidad textcopy.exe.

    Textcopy.exe, esta utilidad no se describe en los Libros en pantalla de SQL Server, pero se puede obtener su descripción escribiendo textcopy /? desde el símbolo del sistema. Esta es la descripción:

    Copia un texto único o el valor de la imagen dentro o fuera de SQL Server. El valor
    es un texto o imagen especificada 'columna' de una sola fila (especificada por el
    "Cláusula where") de la especificada 'table'.

    Si la dirección es IN (/ I), a continuación, los datos del archivo especificado "es
    copian en SQL Server, reemplazar el texto existente o el valor de la imagen. Si el
    dirección es OUT (E / S), el texto o el valor de la imagen se copia de
    SQL Server en el objetivo específico 'archivo', reemplazando cualquier archivo existente.

    TEXTCOPY [/S [sqlserver]] [/U [login]] [/P [password]]
      [/D [database]] [/T table] [/C column] [/W"where clause"]
      [/F file] [{/I | /O}] [/K chunksize] [/Z] [/?]

      /S sqlserver       The SQL Server to connect to. If 'sqlserver' is not
                         specified, the local SQL Server is used.
      /U login           The login to connect with. If 'login' is not specified,
                         a trusted connection will be used.
      /P password        The password for 'login'. If 'password' is not
                         specified, a NULL password will be used.
      /D database        The database that contains the table with the text or
                         image data. If 'database' is not specified, the default
                         database of 'login' is used.
      /T table           The table that contains the text or image value.
      /C column          The text or image column of 'table'.
      /W "where clause"  A complete where clause (including the WHERE keyword)
                         that specifies a single row of 'table'.
      /F file            The file name.
      /I                 Copy text or image value into SQL Server from 'file'.
      /O                 Copy text or image value out of SQL Server into 'file'.
      /K chunksize       Size of the data transfer buffer in bytes. Minimum
                         value is 1024 bytes, default value is 4096 bytes.
      /Z                 Display debug information while running.
      /?                 Display this usage information and exit.







    puedes utilizar el siguiente procedimiento almacenado para simplificar el uso de la utilidad textcopy.exe:




    CREATE PROCEDURE sp_textcopy (
     @srvname   varchar (30),
     @login    varchar (30),
     @password  varchar (30),
     @dbname   varchar (30),
     @tbname   varchar (30),
     @colname   varchar (30),
     @filename  varchar (30),
     @whereclause varchar (40),
     @direction  char(1))
    AS
    DECLARE @exec_str varchar (255)
    SELECT @exec_str =
         'textcopy /S ' + @srvname +
         ' /U ' + @login +
         ' /P ' + @password +
         ' /D ' + @dbname +
         ' /T ' + @tbname +
         ' /C ' + @colname +
         ' /W "' + @whereclause +
         '" /F ' + @filename +
         ' /' + @direction
    EXEC master..xp_cmdshell @exec_str
    ------------------------------------------


    Este es el ejemplo para copiar la imagen en la base de datos "pubs" SQL Server, en la tabla "pub_info", en la columna "logo" nombre de archivo: Picture.bmp pub_id = '0736 ':



    sp_textcopy @srvname = 'ServerName',
          @login = 'Login',
          @password = 'Password',
          @dbname = 'pubs',
          @tbname = 'pub_info',
          @colname = 'logo',
          @filename = 'c:\picture.bmp',
          @whereclause = " WHERE pub_id='0736' ",
          @direction = 'I'


    -------------------------------------

    Por cierto, se debe insertar algo en el texto / imagen columna antes de copiar texto / imagen en ella. Quiero decir, este valor no debe ser nulo. Usted debe escribir (por ejemplo):

    INSERT INTO [dbo].[images] VALUES ('1', 0x0, null)


    en lugar de:


    INSERT INTO [dbo].[images] VALUES ('1', null, null)
     Norman M. Pardell 

    ||Microsoft Certified IT Professional|| Database Administrator. Database Developer. SQL Server 2008

    jueves, 1 de septiembre de 2011 7:23

Todas las respuestas

  • Si te toca hacerlo en SQL Server 2000 (y no queda de otra), debes definir un tipo de datos <<Image>>:

     

    CREATE TABLE MiTabla(
    
    columna1 int not null ...
    
    columnaImagen IMAGE NULL)

     

    En el siguiente enlace hay un articulo completo que coincide con lo que requieres (formulario para recuperar imagen), el autor es Leandro Tutinni (al final del articulo esta el código para C# y VB .Net):

    http://ltuttini.blogspot.com/2011/02/winforms-edicion-empleados-grabar.html

     

    Espero te sea de utilidad, cualquier duda con gusto te apoyamos.

     


    "El talento es una disciplina tenaz y una larga paciencia"  Gustave Flaubert

     Email: info@geohernandez.com Blog: geeks.ms/blogs/ghernandez

    jueves, 1 de septiembre de 2011 4:26
  • Se puede copiar un texto único o el valor de la imagen dentro o fuera de SQL Server utilizando la utilidad textcopy.exe.

    Textcopy.exe, esta utilidad no se describe en los Libros en pantalla de SQL Server, pero se puede obtener su descripción escribiendo textcopy /? desde el símbolo del sistema. Esta es la descripción:

    Copia un texto único o el valor de la imagen dentro o fuera de SQL Server. El valor
    es un texto o imagen especificada 'columna' de una sola fila (especificada por el
    "Cláusula where") de la especificada 'table'.

    Si la dirección es IN (/ I), a continuación, los datos del archivo especificado "es
    copian en SQL Server, reemplazar el texto existente o el valor de la imagen. Si el
    dirección es OUT (E / S), el texto o el valor de la imagen se copia de
    SQL Server en el objetivo específico 'archivo', reemplazando cualquier archivo existente.

    TEXTCOPY [/S [sqlserver]] [/U [login]] [/P [password]]
      [/D [database]] [/T table] [/C column] [/W"where clause"]
      [/F file] [{/I | /O}] [/K chunksize] [/Z] [/?]

      /S sqlserver       The SQL Server to connect to. If 'sqlserver' is not
                         specified, the local SQL Server is used.
      /U login           The login to connect with. If 'login' is not specified,
                         a trusted connection will be used.
      /P password        The password for 'login'. If 'password' is not
                         specified, a NULL password will be used.
      /D database        The database that contains the table with the text or
                         image data. If 'database' is not specified, the default
                         database of 'login' is used.
      /T table           The table that contains the text or image value.
      /C column          The text or image column of 'table'.
      /W "where clause"  A complete where clause (including the WHERE keyword)
                         that specifies a single row of 'table'.
      /F file            The file name.
      /I                 Copy text or image value into SQL Server from 'file'.
      /O                 Copy text or image value out of SQL Server into 'file'.
      /K chunksize       Size of the data transfer buffer in bytes. Minimum
                         value is 1024 bytes, default value is 4096 bytes.
      /Z                 Display debug information while running.
      /?                 Display this usage information and exit.







    puedes utilizar el siguiente procedimiento almacenado para simplificar el uso de la utilidad textcopy.exe:




    CREATE PROCEDURE sp_textcopy (
     @srvname   varchar (30),
     @login    varchar (30),
     @password  varchar (30),
     @dbname   varchar (30),
     @tbname   varchar (30),
     @colname   varchar (30),
     @filename  varchar (30),
     @whereclause varchar (40),
     @direction  char(1))
    AS
    DECLARE @exec_str varchar (255)
    SELECT @exec_str =
         'textcopy /S ' + @srvname +
         ' /U ' + @login +
         ' /P ' + @password +
         ' /D ' + @dbname +
         ' /T ' + @tbname +
         ' /C ' + @colname +
         ' /W "' + @whereclause +
         '" /F ' + @filename +
         ' /' + @direction
    EXEC master..xp_cmdshell @exec_str
    ------------------------------------------


    Este es el ejemplo para copiar la imagen en la base de datos "pubs" SQL Server, en la tabla "pub_info", en la columna "logo" nombre de archivo: Picture.bmp pub_id = '0736 ':



    sp_textcopy @srvname = 'ServerName',
          @login = 'Login',
          @password = 'Password',
          @dbname = 'pubs',
          @tbname = 'pub_info',
          @colname = 'logo',
          @filename = 'c:\picture.bmp',
          @whereclause = " WHERE pub_id='0736' ",
          @direction = 'I'


    -------------------------------------

    Por cierto, se debe insertar algo en el texto / imagen columna antes de copiar texto / imagen en ella. Quiero decir, este valor no debe ser nulo. Usted debe escribir (por ejemplo):

    INSERT INTO [dbo].[images] VALUES ('1', 0x0, null)


    en lugar de:


    INSERT INTO [dbo].[images] VALUES ('1', null, null)
     Norman M. Pardell 

    ||Microsoft Certified IT Professional|| Database Administrator. Database Developer. SQL Server 2008

    jueves, 1 de septiembre de 2011 7:23