Principales respuestas
Insertar Imagen En SQL Server 2000

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
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
- Propuesto como respuesta Alberto López Grande (qwalgrande)Moderator jueves, 1 de septiembre de 2011 16:30
- Marcado como respuesta Eduardo PorteschellerModerator lunes, 5 de septiembre de 2011 16:31
-
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
- Marcado como respuesta Eduardo PorteschellerModerator lunes, 5 de septiembre de 2011 16:31
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
- Propuesto como respuesta Alberto López Grande (qwalgrande)Moderator jueves, 1 de septiembre de 2011 16:30
- Marcado como respuesta Eduardo PorteschellerModerator lunes, 5 de septiembre de 2011 16:31
-
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
- Marcado como respuesta Eduardo PorteschellerModerator lunes, 5 de septiembre de 2011 16:31