Pages

Tuesday, March 22, 2016

Regional setting dan SQL Script


Saya pernah mengalami masalah dengan regional setting  ketika membuat aplikasi dengan .NET dan ternyata masalah ini juga terjadi dengan programmer lain dan aplikasi lain yang kami beli dari software house.
Masalahnya yaitu jika komputer user regional settingnya indonesia maka format penulisan tanggal menjadi dd/mm/yy dan penulisan desimal menggunakan koma (,).  Ketika diaplikasi terdapat script SQL yang memasukkan data tanggal atau nilai desimal maka akan terjadi error.
Hal ini yang pernah saya alami dan solusi termudah adalah dengan merubah regional setting dikomputer user ke english (United state). Dan hal ini yang selama ini saya lakukan.
Belum lama ketika saya membuat aplikasi hal ini terjadi kembali dan tidak mungkin meminta user merubah regional settingnya ke English (united state).
Setelah melakuka percobaan berkali-kali akhirnya saya mendapatkan solusinya. Yaitu dengan melakukan pengecekan regional setting yang berlaku dan merubahnya ke regional setting English (united state) dengan cara sebagai berikut:
Langkah pertama:
Tuliskan script ini di form  onload
If Microsoft.VisualBasic.Left(Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern.ToString, 1) <> "m" Then
            My.Application.ChangeCulture("en-US")
            Me.Regsetting.Text = "Ind"
Else
            My.Application.ChangeCulture("en-US")
End If
Skrip itu melakukan cek apakah datetimeformat-nya tidak diawali oleh huruf “m”  jika iya maka rubah regional settingnya ke English (United State) dengan skrip            My.Application.ChangeCulture("en-US")
Dan memberi tanda bahwa regional  setting sebelumnya adalah Indonesia dengan menuliskan “Ind” ke textbox “Regstting”
Langkah kedua yaitu:
Menuliskan skrip ini di form onclose
If Me.Regsetting.Text = "Ind" Then
            My.Application.ChangeCulture("id-ID")
End If
Skrip ini mengembalikan regional setting komputer ke “Indonesia”

Selain cara ini mungkin masih ada cara lain. Silahkan dishare bagi yang memiliki cara-cara lainnya.