Conectar Dynamics Nav con BBDD externas

Muchas veces necesitamos conectar Dynamics Nav con bbdd externas para extraer o modificar datos. Podemos usar librerías externas o webservices. Pero si es algo sencillo podemos ejecutar directamente el código desde Dynamics Nav e interactuar con cualquier base de datos externa.

Con ADO.NET, un programa puede leer, insertar, editar, o borrar, la información contenida en diferentes tablas dentro de la base de datos. Además, se puede manipular la propia base de datos para crear nuevas tablas, como también alterar o eliminar las ya existentes, entre otras cosas.

En el siguiente link está la documentación oficial de ADO.NET:

También os pongo un ejemplo de código CAL de como conectarse a una bbdd externa:

ADOConn@1100240000 : Automation Microsoft ActiveX Data Objects 2.8 Library'.Connection";
ADOrs@1100240001 : Automation 'Microsoft ActiveX Data Objects 2.8 Library'.Recordset";
ConnStr@1100240002 : Text[200];
AnzCount@1100240003 : Text[30];
OpenMethod@1100240004 : Integer;
LockMethod@1100240005 : Integer;
Name@1100240006 : Text[200];
Str@1100240007 : Text[200];


// ODBC-Connector
CLEAR(ADOConn);
CLEAR(ADOrs);

OpenMethod := 3; // 1=adOpenKeyset; 2=adOpenDynamic; 3= adOpenStatic
LockMethod := 2; // 1=dLockreadonly; 2=adLockPessimistic; 3=adLockOptimistic; 4=adLockBatchOptimistic
CREATE(ADOConn);
ConnStr := 'PROVIDER=Microsoft.Jet.OLEDB.4.0; Data Source= c:\pruebas.mdb';

ADOConn.Open(ConnStr);
CREATE(ADOrs);

ADOrs.Open('Select * from Tabla_Prueba WHERE ID = "Id_prueba"',ADOConn,OpenMethod,LockMethod); //ejecuta la sentencia

IF NOT ADOrs.EOF THEN BEGIN //Sí no es vacío
ADOrs.MoveFirst; //Se queda apuntado al primer registro de la tabla
Name := ADOrs.Fields.Item('Referencia').Value;
Message(Name);
END;

// Close odbc connector
ADOrs.Close;
ADOConn.Close;

CLEAR(ADOrs);
CLEAR(ADOConn);



Related
Recommended