Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Problema con OPENROWSET(BULK' ...

Estas en el tema de Problema con OPENROWSET(BULK' ... en el foro de SQL Server en Foros del Web. Que tal foreros, me acerco a ustedes para ver si me pueden ayudar a solucionar un problema. Tengo una tabla que contiene una columna IMAGE ...
  #1 (permalink)  
Antiguo 04/10/2011, 10:39
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Pregunta Problema con OPENROWSET(BULK' ...

Que tal foreros, me acerco a ustedes para ver si me pueden ayudar a solucionar un problema. Tengo una tabla que contiene una columna IMAGE donde quiero estar guardando unos archivos PDF.

En SQL Server 2005 puedo ejecutar esta instrucción sin ningún problema.

DECLARE @fichero NVARCHAR(250)
SET @fichero = N'D:\temp\eiffel.jpg'
EXEC('SELECT * FROM OpenRowSet( Bulk N''' + @fichero + ''', Single_Blob) AS Imagen')

Lo anterior es exactamente lo que deseo lograr, pero resulta que el servidor donde esta corriendo mi Stored Procedure es SQL 2000 por lo cual no puedo ejecutar dicha instrucción.

Me gustaria saber como ejecutar esa instrucción en un servidor 2000.

De antemano muchas gracias.

Saludos!
__________________
http://ka0stj.wordpress.com/
  #2 (permalink)  
Antiguo 04/10/2011, 10:57
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problema con OPENROWSET(BULK' ...

http://www.dbforums.com/microsoft-sq...p_sqlexec.html

http://msdn.microsoft.com/en-us/libr...sql.80%29.aspx

Regards,
Libras
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 04/10/2011, 11:08
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: Problema con OPENROWSET(BULK' ...

Que tal Libras gracias por contestar, pero mi problema no radica en utilizar sp_executesql sino en insertar un archivo binario PDF desde SQL Server. Como comento con la siguiente instrucción en SQL Server 2005 me funciona pero no en SQL 2000:

DECLARE @fichero NVARCHAR(250)
SET @fichero = N'D:\temp\eiffel.jpg'
EXEC('SELECT * FROM OpenRowSet( Bulk N''' + @fichero + ''', Single_Blob) AS Imagen')

Saludos!
__________________
http://ka0stj.wordpress.com/
  #4 (permalink)  
Antiguo 04/10/2011, 11:12
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Problema con OPENROWSET(BULK' ...

Para la version 2000, no es tan simple el almacenamiento de imagenes, ya que no esta diseñado para esto, checa este ejemplo:

http://a4bike.blogspot.com/2008/10/a...ge-en-sql.html
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 04/10/2011, 11:23
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: Problema con OPENROWSET(BULK' ...

Gracias por contestar iislas, te comento que por el lado de la aplciación no tengo ningún problema para poder guardar y visualizar los archivos, pero estoy creando un proceso alternativo automático, es decir, es un Stored Procedure que tomará dichos archivos y los almacenará en la tabla.

Te comento lo anterior porque en el enlace que me compartes mencionan como guardar las imágenes desde ASP.

Aquí mas que nada mi problemática es que no logro almacenar un archivo binario a través de un Path.

Saludos!
__________________
http://ka0stj.wordpress.com/
  #6 (permalink)  
Antiguo 04/10/2011, 12:31
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Problema con OPENROWSET(BULK' ...

Veamos si este ejemplo es de ayuda:

Código SQL:
Ver original
  1. CREATE TABLE #Employee (EmployeeId INT IDENTITY(1,1), FirstName VARCHAR(50), LastName VARCHAR(50), Fotografia image)
  2. INSERT INTO #Employee (FirstName, LastName, Fotografia)
  3. SELECT 'Mario', 'Franco',
  4. (SELECT *
  5. FROM OPENROWSET(BULK 'C:\Mario-Franco.JPG', SINGLE_BLOB)
  6. AS Fotografia)
__________________
MCTS Isaias Islas
  #7 (permalink)  
Antiguo 04/10/2011, 13:27
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: Problema con OPENROWSET(BULK' ...

Hola iislas gracias de nuevo por responder, te comento que ese script en SQL Server 2000 no funciona, ya habia realizado pruebas anteriormente en SQL Server 2005 y funciona a la perfección, como comentaba inicialmente mi duda seria como realizar dicha operación en un servidor SQL Server 2000.

Saludos!
__________________
http://ka0stj.wordpress.com/
  #8 (permalink)  
Antiguo 04/10/2011, 15:33
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Problema con OPENROWSET(BULK' ...

Algun mensaje de error, se probo en 2000 y funciono
__________________
MCTS Isaias Islas
  #9 (permalink)  
Antiguo 04/10/2011, 20:33
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: Problema con OPENROWSET(BULK' ...

iislas antes que nada gracias por contestar, te comento que decicí cambiar a un servidor 2008 de esta forma ya no tengo problemas con ejecutar la consulta.

Saludos!
__________________
http://ka0stj.wordpress.com/
  #10 (permalink)  
Antiguo 05/10/2011, 09:39
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Problema con OPENROWSET(BULK' ...

Si, tambien lo probe en un servidor con 2008 R2 y funciona.
__________________
MCTS Isaias Islas

Etiquetas: 2000, select, server, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:57.