Connecting from Dynamics AX to Outside Database
I have been asked a few times if Dynamics AX can connect to non-AX databases and the answer is yes. You do this is by creating an ODBC data source in the control panel that connects to the external database. Once the connection has been created, in X++ there are classes that can utilize the data source and make the call out to the other database.
Here is an example of how to use your ODBC data source:
public boolean performOperationOnExternalDatabase(str _sqlStatementToExecute)
{
LoginProperty loginProperty;
OdbcConnection odbcConnection;
Statement statement;
int insertedRowCount;
boolean success = false;
SqlStatementExecutePermission permission;
loginProperty = new LoginProperty();
loginProperty.setDSN(“ODBCDsnName”);
loginProperty.setDatabase(“DatabaseName”);
odbcConnection = new OdbcConnection(loginProperty);
if(odbcConnection)
{
permission = new SqlStatementExecutePermission(_sqlStatementToExecute);
permission.assert();
statement = odbcConnection.createStatement();
insertedRowCount = statement.executeUpdate(sqlStatementToExecute);
statement.close();
if(insertedRowCount > 0)
{
success = true;
}
}
else
{
error(“Failed to connect to database”);
}
return success;
}