https://shindu-b-raditya.blogspot.com/2016/10/problem-koneksi-eksternal-database-sql.html
Berbeda dengan database SQL Server dimana merupkan client-server database, maka database Access adalah File Database. Database bersifat local karena untuk membuka database tersebut harus membuka file mdb nya. Maka harus akses via network share agar dapat konek dengan database tersebut jika diakses bukan dari server/pc itu sendiri.
Langkah-langkah nya adalah sebagai berikut.
Pertama, persiapkan dulu agar folder lokasi file MDB tersebut dapat di akses dari luar yaitu dengan men-share folder nya. Karena PC tersebut tidak konek domain maka saya membuat user local baru di PC tersebut dan membuka share untuk user tersebut.
Kedua, persiapkan ODBC.
Dikarenakan AX memiliki dua mode aplikasi (mode server 64 bit, dan mode client 32 bit) maka kita perlu memilih akan menggunakan mode yang mana. Jika jalan di client maka harus membuat ODBC 32 bit. Sedang jika menggunakan run on server/batch job, maka gunakan ODBC 64 bit. Untuk ODBC 64 bit bisa download driver Access (Access Database Engine) https://www.microsoft.com/en-us/download/details.aspx?id=54920
Perlu di pertimbangkan, jika kita jalan di sisi Client, maka setting ODBC juga perlu di setting di setiap client AX yang menjalankan fungsi akses ke eksternal DB tersebut. Sedang jika kita jalan di sisi server, maka ODBC cukup di setting di Server AOS. Karena itu akhirnya saya putuskan untuk jalankan aplikasi di sisi server, agar juga nanti saya bisa membuat job batch yang secara periodik melakukan download data.
Pada server AOS jika driver belum di install maka saat menambah ODBC hanya akan muncul SQL Server.
Setelah di install maka pilihannya menjadi:
Setelah driver untuk ms Access terinstall, maka dilanjutkan membuat ODBC baru dengan target ke file .mdb yang ada di PC.
Setelah user dan password disimpan, ulangi proses Select tadi. Jika semua benar, akan muncul file mdb yang ada di dalam folder sharing tersebut. Pilih file yang dimaksud.
Selanjutnya masukkan password untuk membuka file jika pada bagian Advanced.
Saat saya setting ODBC ini terkadang beberapa kali tampilan ODBC tertutup sendiri. Jika seperti itu maka ulangi lagi prosesnya sampai akhirnya benar-benar tersimpan odbc nya.
Oh ya, server AX berjalan sesuai user service nya. Maka semua proses ODBC diatas dilakukan pada user service AX tersebut.
Ketiga, coding di AX.
Coding di AX tidak ada hal yang khusus. Untuk membuka koneksi bisa langsung menggunakan kode di bawah ini:
// Set the information on the ODBC.
loginProperty = new LoginProperty();
loginProperty.setDSN(nama DSN);
odbcConnection = new OdbcConnection(loginProperty);
//Assert permission for executing the sql string.
perm = new SqlStatementExecutePermission(query String);
perm.assert();
//Prepare the sql statement.
statement = odbcConnection.createStatement();
resultSet = statement.executeQuery(query String);
while (resultSet.next()){
//TODO: READ per ROW
...
...
}
resultSet.close();
statement.close();
Tidak ada komentar:
Posting Komentar