Access - ¿Cómo insertar campo image de sql a tabla access

 
Vista:
sin imagen de perfil

¿Cómo insertar campo image de sql a tabla access

Publicado por Luis (1 intervención) el 28/06/2014 18:29:19
Hola, necesito urgentemente insertar un campo image de SQL a una tabla access, específicamente a un campo OLE. Estoy ejecutando un procedimiento almacenado de SQL en access pero el campo que contiene la imagen no me lo pasa a la tabla de destino de access.

Este es el procedimiento en SQL para obtener los datos deseados

ALTER PROCEDURE [dbo].[SADSOGESTObtRecorridoRutinaImagenes]
(
@IDInforme int
)
AS
SELECT

IdImagen
,IDInforme
,NomImagen
,Imagen --campo tipo image
,Descripcion

FROM SADSOGESTRecorridoRutinaInfoCompImagenes

WHERE IDInforme = @IDInforme
ORDER BY NomImagen DESC

y este es el procedimiento para almacenar los datos en la tabla access:

Public Static Sub ObtRecorridoRutinaInfoImagenes()

Variables
Set conn = New ADODB.Connection
conn.Open (STRCONNCachi)
Set ObCommand.ActiveConnection = conn
'El procedimiento almacenado en SQL Server es "SADSOGESTObtRecorridoRutinaImagenes"
ObCommand.CommandText = "SADSOGESTObtRecorridoRutinaImagenes"
ObCommand.CommandType = adCmdStoredProc

'DECALRA PARAMETROS
Dim opIDInfo As ADODB.Parameter
Set opIDInfo = ObCommand.CreateParameter("@IDInforme", adInteger, adParamInput, 9)
ObCommand.Parameters.Append opIDInfo
opIDInfo.Value = 38 'Form_RecorridoRutina.tbxNumProyecto

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set rs = ObCommand.Execute
Set rsTablas = CurrentDb.OpenRecordset("Imagenes")
If rsTablas.RecordCount > 0 Then
Do While Not rsTablas.EOF
rsTablas.Delete
rsTablas.MoveNext
Loop
End If
If rs.RecordCount < 0 Then
With rs
Do While Not rs.EOF
rsTablas.AddNew
rsTablas.Fields(0) = 1 'rs.Fields(0)
rsTablas.Fields(1) = .Fields(2)
rsTablas.Fields(2) = .Fields(4)
rsTablas.Fields(3) = "C:\SIGSisRegContSO\ImagenesTemp\" & rs.Fields(2)
rsTablas.Fields(4) = .Fields(1)
rsTablas.Fields(5) = .Fields(0)
rsTablas.Fields(6) = .Fields(3) 'rsTablas.Fields(6) es un campo OLE
rsTablas.Update
rsTablas.MoveLast
rsTablas.MoveNext
.MoveNext
Loop
rsTablas.Close
End With
End If
ObCommand.Parameters.Delete ("@IDInforme")
rs.Close
End Sub


Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder