Doble conexión a BD

Hola, deseo conectarme simultáneamente a dos bases de datos una a través de ODBC (visual foxpro), para leer, y otra a través de sql nativo SQLCA, para guardar la información leída, cuando trato de hacerlo me indica que la conexión ya esta abierta o establecida, gracias
Respuesta
1
El SQLCA no es el sql nativo, sino que es un objeto transacción (por defecto) a través del cual PB establece las conexiones y realiza las operaciones con las BD. A este objecto uno le setea los valores de los diferentes parámetros y después se conecta. Una vez conectado PB reenvía todas las solicitudes para la BD a través de este objeto. (Ej. dw_1. SettransObject(sqlca))
Como el SQLCA es el objeto por defecto, si no especificás uno distinto PB toma este.
En tu caso vos tenés que crear un objeto transacción nuevo para la segunda conexión que querés mantener.
Ej:
Transaction SQLCA2
SQLCA2 = create transaction
CONNECT USING SQLCA2;
dw_2.settransObject(sqlca2)
select *
from tabla
where algo
USING SQLCA2;
if sqlca2.sqlcode = -1 then
//error
ROLLBACK USING SQLCA2;
end if
El using le dice a pb que use un objeto transacción diferente al sqlca.
El nuevo objeto se maneja igual que el sqlca.
Acordate de chequear los errores usando el objeto que corresponda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas