Selectblob con access

Hola de nuevo, te he mandado una pregunta antes, no hace falta que me la contestes ya la solucione. Ahora tengo el problema con SELECTBLOB, resulta que hago desde código un selectblob a un campo de la base de datos y me salta la ventana para que elija el DNS de ARCHIVO, tengo creado el ODBC y se conecta perfectamente pero el error lo da al llegar al selectblob. Gracias es muy urgente.

1 Respuesta

Respuesta
1
Por las dudas: fíjate que no tengas USING y que diga un objeto conexión diferente.
Sino mandame el código.
AldoB
Que pregunta mandaste antes. Si queda abierta después me bloquea para recibir nuevas.
Aldob
Para mi pasa porque no estas conectado con esa transacción al momento de hacer el select.
Pásame
El código es el siguiente
SELECTBLOB clientes.campo_ole INTO :pblob_fichero
FROM clientes
WHERE clientes.idcliente = :pl_cliente
USING itransaction;
if itransaction.SQLCode = -1 then
ps_msgerr = itransaction.SQLErrText
Return -1
else
Return 1
end if
Para manejar blobs tengo una transacción propia para el proceso, totalmente independiente del resto.
Si todo eso ya lo hago, igualo todo excepto el autocommit que tiene que estar a true según dice la ayuda de PB. Pero aun así me pide que escoja el DNS de archivo y la base de datos. Mi duda es porque con el Updateblob funciona y con el select no.
itransaction = CREATE transaction
itransaction.DBMS = SQLCA.DBMS
itransaction.DataBase = SQLCA.database
itransaction.LogID = SQLCA.logid
itransaction.LogPass = SQLCA.logpass
itransaction.ServerName = SQLCA.servername
itransaction.DBParm = SQLCA.DBParm
itransaction.AutoCommit = true
CONNECT USING itransaction;
if itransaction.SQLCode <> 0 Then
ps_msgerr = "Imposible conectar a la Base de Datos.~r~n" + SQLCA.SQLErrText
Return -1
else
SELECTBLOB clientes.campo_ole INTO :pblob_fichero
FROM clientes
WHERE clientes.idcliente = :pl_cliente
USING itransaction;
if itransaction.SQLCode = -1 then
ps_msgerr = itransaction.SQLErrText
Return -1
else
Return 1
end if
end if
El tema es que con la nueva conexión tienes que conectarla al igual que conectas al sqlca.
Podes igualar uno a uno los valores del sqlca y el itransaccion (ej. sqlca.dbms = itransaccion.dbms) y después tienes que hacer un connect con itransaccion.
¿Por qué no haces un debug y te fijas que tiene la itransaccion justo antes de conectarla para leer el blob?
De paso asegurate que no este conectada en ese momento ya que no veo que la estés desconectando después de leer o guardar.
Decime que sale.
AldoB

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas