none
obtencion de Bulk con ruta variable RRS feed

  • Pregunta

  • Buenos dias comunidad,

    tengo la siguiente consulta i me funciona correctamente

    SELECT   campo1, 
    campo2,
    campo3,
    ( select * from OpenRowset(Bulk  'C:\fotos\foto 1.jpg' , Single_Blob) as foto) 
    			
    
    FROM tabla

    la pregunta seria la siguiente:

    podria hacer que el bulk en lugar de coger una foto fija pudiera pasar-le un valor como 'c:\fotos\foto ' + campo3 + '.jpg', ya que el campo tres tengo la numeracion de la foto que necesito dentro la misma consulta?

    Gracias de antemano

    viernes, 20 de septiembre de 2019 11:02

Respuestas

  • Deleted
    viernes, 20 de septiembre de 2019 12:02
  • la pregunta seria la siguiente:

    podria hacer que el bulk en lugar de coger una foto fija pudiera pasar-le un valor como 'c:\fotos\foto ' + campo3 + '.jpg', ya que el campo tres tengo la numeracion de la foto que necesito dentro la misma consulta?

    ¿Lo has probado si funciona?

    Por eso prefiero almacenar las imágenes dentro de la tabla, pero usando la opción filestream.

    Para su caso le sugiero que utilice dos consultas SELECT: la primera obtiene los datos de la tabla y la segunda la foto. Esta segunda consulta, con el código SQL ad hoc ensamblado en la aplicación a partir de la información obtenida en la primera ejecución.


    José Diz     Belo Horizonte, MG - Brasil     [query performance tuning: Porto SQL]


    Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    gracias por tan pronta respuesta.

    si he probado lo siguiente pero me da error

    SELECT   campo1, 
    campo2,
    campo3,
    ( select * from OpenRowset(Bulk  'C:\fotos\foto '+1+.jpg' , Single_Blob) as foto) 		
    
    FROM tabla

    también al ser un valor integer he echo una cast(1 as varchar(10)) para que concatenara pero me da el mismo error : "Sintaxis incorrecta cerca de '+'"

    también he probado declarando una variable e insertarlo en el bulk de la siguiente Forma

    declare  @ruta  varchar(max)
    set @ruta = 'c:\fotos\Foto ' + 1 + '.jpg'''
    (select * from OpenRowset(Bulk @ruta, Single_Blob) as foto) 

    pero en este último caso me da error : "Sintaxis incorrecta cerca de '@ruta'".

    por lo que me encuentro de no saber como solucionar este tema


    • Editado Sir16 viernes, 20 de septiembre de 2019 12:58
    • Propuesto como respuesta Pablo RubioModerator viernes, 20 de septiembre de 2019 15:13
    • Marcado como respuesta Pablo RubioModerator miércoles, 25 de septiembre de 2019 18:47
    viernes, 20 de septiembre de 2019 12:57
  • por lo que me encuentro de no saber como solucionar este tema>

    Para su caso le sugiero que utilice dos consultas SELECT en la aplicación: la primera obtiene los datos de la tabla y la segunda la foto. Esta segunda consulta, con el código SQL ad hoc ensamblado en la aplicación a partir de la información obtenida en la primera ejecución.

     

    -- código #1
    SELECT campo1, campo2, campo3
     from tabla;
    
    -- código #2
    SELECT T.Foto 
    from OpenRowset(Bulk  'nombre del archivo con la foto', Single_Blob) as T(Foto);

    ¿Cuál es el lenguaje de programación utilizado en la aplicación?


    José Diz     Belo Horizonte, MG - Brasil     [query performance tuning: Porto SQL]


    Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    otra opción podría ser, si el campo 3 es image , le podría guardar la ruta , pero como podría recuperar esa ruta, ya que seguramente sera en varbynary por el tipo image, pero si tengo alguna imagen guardada correctamente no la leería correctamente.
    viernes, 20 de septiembre de 2019 14:54

Todas las respuestas

  • Deleted
    viernes, 20 de septiembre de 2019 12:02
  • la pregunta seria la siguiente:

    podria hacer que el bulk en lugar de coger una foto fija pudiera pasar-le un valor como 'c:\fotos\foto ' + campo3 + '.jpg', ya que el campo tres tengo la numeracion de la foto que necesito dentro la misma consulta?

    ¿Lo has probado si funciona?

    Por eso prefiero almacenar las imágenes dentro de la tabla, pero usando la opción filestream.

    Para su caso le sugiero que utilice dos consultas SELECT: la primera obtiene los datos de la tabla y la segunda la foto. Esta segunda consulta, con el código SQL ad hoc ensamblado en la aplicación a partir de la información obtenida en la primera ejecución.


    José Diz     Belo Horizonte, MG - Brasil     [query performance tuning: Porto SQL]


    Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    gracias por tan pronta respuesta.

    si he probado lo siguiente pero me da error

    SELECT   campo1, 
    campo2,
    campo3,
    ( select * from OpenRowset(Bulk  'C:\fotos\foto '+1+.jpg' , Single_Blob) as foto) 		
    
    FROM tabla

    también al ser un valor integer he echo una cast(1 as varchar(10)) para que concatenara pero me da el mismo error : "Sintaxis incorrecta cerca de '+'"

    también he probado declarando una variable e insertarlo en el bulk de la siguiente Forma

    declare  @ruta  varchar(max)
    set @ruta = 'c:\fotos\Foto ' + 1 + '.jpg'''
    (select * from OpenRowset(Bulk @ruta, Single_Blob) as foto) 

    pero en este último caso me da error : "Sintaxis incorrecta cerca de '@ruta'".

    por lo que me encuentro de no saber como solucionar este tema


    • Editado Sir16 viernes, 20 de septiembre de 2019 12:58
    • Propuesto como respuesta Pablo RubioModerator viernes, 20 de septiembre de 2019 15:13
    • Marcado como respuesta Pablo RubioModerator miércoles, 25 de septiembre de 2019 18:47
    viernes, 20 de septiembre de 2019 12:57
  • Deleted
    viernes, 20 de septiembre de 2019 13:22
  • por lo que me encuentro de no saber como solucionar este tema>

    Para su caso le sugiero que utilice dos consultas SELECT en la aplicación: la primera obtiene los datos de la tabla y la segunda la foto. Esta segunda consulta, con el código SQL ad hoc ensamblado en la aplicación a partir de la información obtenida en la primera ejecución.

     

    -- código #1
    SELECT campo1, campo2, campo3
     from tabla;
    
    -- código #2
    SELECT T.Foto 
    from OpenRowset(Bulk  'nombre del archivo con la foto', Single_Blob) as T(Foto);

    ¿Cuál es el lenguaje de programación utilizado en la aplicación?


    José Diz     Belo Horizonte, MG - Brasil     [query performance tuning: Porto SQL]


    Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    otra opción podría ser, si el campo 3 es image , le podría guardar la ruta , pero como podría recuperar esa ruta, ya que seguramente sera en varbynary por el tipo image, pero si tengo alguna imagen guardada correctamente no la leería correctamente.
    viernes, 20 de septiembre de 2019 14:54