cancel
Showing results for 
Search instead for 
Did you mean: 

Internal : Could not execute code stage because exception thrown by code stage: No se ha inicializado la propiedad ConnectionString.

AlbertoGómez
Level 3
Hola, buenas. 
Estoy tratando de conectar a una BD de Access (si, el cliente lo usa) y resulta que si pongo el flujo en un Process o en un Object todo de corrido, me lo ejecuta sin problema, accedo a la base de datos y hago una consulta, de por ejemplo, buscar el número máximo de un campo de una tabla dada.
Lo que hago es conectar al access, abrirlo, y luego, acceder a los datos con un "Get Collection" y una instrucción SQL. 
Si todo estos pasos están en un Process Studio o en un Object Studio, no hay problema, lo dicho.
Pero si en un Process me conecto a la base de datos, la abro, y llamo a un Object donde está la consulta SQL específica, me da ese error

5627.png
El action de conectar a la BD es por el ConnectionString, con los siguientes datos: "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;Persist Security Info=False;"
donde la direccion es el archivo access que estoy abriendo.  Es decir, que se inicializa, pero no se donde se pierde. 
¿Alguna idea de por qué si lo pongo todo seguido funciona y si lo paso de un PS a un OS no me funciona? Parece como que al cambiar del Process a Object no se relaciona la BD.
Un saludo y gracias

------------------------------
Alberto Gómez
------------------------------
1 BEST ANSWER

Best Answers

jhogelp
MVP
Hola Alberto,

Consulta que Businnes Object estas utilizando:
Data - SQL Server
Data - OLEDB

Te recomiendo Data - OLEDB si es una Base de Datoss Accces pero para cualquiera de la 2 que uses, te recomiendo usar de primero el action Set Connection antes de realizar la consulta a la BD, con ese action se inicializa la conexion a la BD, sin eso saldrá el mensaje que mencionas. Otra cosa, tienes que agregar ese action donde vayas a realizar consultas a la BD. Ejemplo: si tienes un process que inicializa la conexion con el action Set connection y tienes un object para realizar la consulta Get Collection te saldrá el error que mencionas, para que no de error tienes que colocar el action Set connection dentro del Object. También debes acordarte de cerrar la conexion cuando la dejes de usar (action Close).

Espero haberte ayudado

Saludos

------------------------------
Jhogel Ponne
Senior RPA
Ernst & Young
America/Panama
------------------------------

View answer in original post

2 REPLIES 2

jhogelp
MVP
Hola Alberto,

Consulta que Businnes Object estas utilizando:
Data - SQL Server
Data - OLEDB

Te recomiendo Data - OLEDB si es una Base de Datoss Accces pero para cualquiera de la 2 que uses, te recomiendo usar de primero el action Set Connection antes de realizar la consulta a la BD, con ese action se inicializa la conexion a la BD, sin eso saldrá el mensaje que mencionas. Otra cosa, tienes que agregar ese action donde vayas a realizar consultas a la BD. Ejemplo: si tienes un process que inicializa la conexion con el action Set connection y tienes un object para realizar la consulta Get Collection te saldrá el error que mencionas, para que no de error tienes que colocar el action Set connection dentro del Object. También debes acordarte de cerrar la conexion cuando la dejes de usar (action Close).

Espero haberte ayudado

Saludos

------------------------------
Jhogel Ponne
Senior RPA
Ernst & Young
America/Panama
------------------------------

Muchas gracias, Jhogel.
En realidad, es lo que decías, El Set connection lo tenía en un Process y el Get Collection, en un Object, por lo que no me dejaba seguir. Lo malo que para cada vez que tengo que acceder al Access, tengo que establecer conexión, abrirla, trabajar con ella (leer, escribir...) y luego cerrar, ya que son objetos distintos y partes distintas del proceso. Sabiendo que es asi, tendré que optimizar el flujo para ir cuantas menos veces a la BD posible.
Muchas gracias!

------------------------------
Alberto Gómez
------------------------------