sábado, agosto 01, 2015

¿Cómo acceder directamente a SQL Server desde Dynamics NAV?

En ocasiones se necesita acceder desde Navision a alguna base de datos de SQL Server. Vamos a ver cómo hacerlo.

Hay que tener en cuenta las siguientes consideraciones:
- Este codigo utiliza .NET Interoperability para interfasar con componentes propios de Windows.
- Estos componentes se ejecutan en el NST, es decir, en el servidor de NAV, por lo tanto, es éste el que debe tener acceso a SQL Server.
- El control de transacciones va totalmente a parte del propio control de transacciones de NAV.

Declaración de variables:
SqlConnection : DotNet "System.Data.SqlClient.SqlConnection"
SqlCommand : DotNet "System.Data.SqlClient.SqlCommand"
SqlDataReader : DotNet "System.Data.SqlClient.SqlDataReader";

Codigo para abrir una conexión:
connString := 'Data Source=TheSQLsrv\AndInstance;Initial Catalog=TheBBDD;Integrated Security=false;User ID=TheUsername;Password=ThePassword';
SqlConnection := SqlConnection.SqlConnection(connString);
SqlConnection.Open();

Código para ejecutar un comando:
SQLstring := 'SELECT * FROM TheTableOrView ORDER BY TheOrderField';
SqlCommand := SqlConnection.CreateCommand();
SqlCommand.CommandText := SQLstring;
SqlDataReader := SqlCommand.ExecuteReader();

Codigo para leer un DataReader:
WHILE SqlDataReader.Read() DO BEGIN 
      myVar := SqlDataReader.Item(SomeField);
END;

Cerrar la conexión:
SqlConnection.Close();

No hay comentarios:

Publicar un comentario