Thursday, February 20, 2014

Cara Mengakses External Database Menggunakan TSQL dari X++

Sebagai developer AX pasti ada satu saat dimana kita perlu untuk menghubungkan program kita ke database external
AX sudah menyiapkan beberapa class (OLEDB) yang dapat kita gunakan untuk hal tersebut. Tetapi pada artikel ini kita akan menggunakan ODBCConnection class

Untuk membuat DSN, masuk ke Administrative Tools > Data Sources (ODBC)
DSN dapat dibuat disisi client atau di sisi AOS.

Contoh:

static void jobs1(Args _args)  {
           LoginProperty loginProperty;
           OdbcConnection odbcConnection;
           Statement statement;
           ResultSet resultSet;
           str sql, criteria;
           SqlStatementExecutePermission perm;
           str myUserName="domain\\user";
           str myPassword="password";
           str myConnectionString;

           // Set informasi ODBC
           myConnectionString=strfmt("UID=%1;PWD=%2",myUserName,myPassword);
           loginProperty = new LoginProperty();
           loginProperty.setDSN("dsnName");     // optional
           loginProperty.setServer("ServerName");
           loginProperty.setDatabase("databaseName");
           loginProperty.setOther(myConnectionString);

           // buat koneksi ke database external.
           odbcConnection = new OdbcConnection(loginProperty);

           if (odbcConnection) {
                sql = "SELECT * FROM CustTable";

                // Assert permission for executing the sql string.
                perm = new SqlStatementExecutePermission(sql);
                perm.assert();

                // Prepare the sql statement.
                statement = odbcConnection.createStatement();
                resultSet = statement.executeQuery(sql);

                // loop
                while (resultSet.next()) {
                  info(resultSet.getString(1));
                  info(resultSet.getString(2));
                }

                // Close the connection.
                resultSet.close();
                statement.close();
           } else {
                error("ODBC error.");
           }
}

No comments:

Post a Comment