หลังจากลองไล่ๆโปรแกรมดูก็พบ Bug ใน Code (Java) ส่วนที่เกี่ยวกับการเซตค่าลงใน Statement
เมื่อทำการรันโปรแกรมแล้วพบ Error นี้
"Exception occured during BigDecimal conversion."
และ
"Caused by Overflow occured during numeric data type conversion of "1000000000000000000.00" "
ทำให้คาดเดาได้ว่าน่าจะเกี่ยวกับเรื่องของการแปลงค่าครับ
เมื่อ ลองดูข้อมูลแล้วพบว่า Field ที่ชื่อ Payment Amount นั้นมีบาง Record ที่มีค่า "99999999999999999999.00" หรือ เลข 9 จำนวน 20 หลักนั่นเอง
ทำให้โปรแกรมไปตายที่บรรทัดนี้ครับ
stmt.setDouble(15, Double.parseDouble(newCredit[index].getPaymentAmount()));
คาดว่าน่าจะเกี่ยวกับ Type ของข้อมูล จึงทำการเปลี่ยน Type การเซตค่าจาก Double ให้เป็น BigDecimal ดังนี้ครับ
stmt.setBigDecimal(15, new BigDecimal(newCredit[index].getPaymentAmount()));
ผลก็คือโปรแกรมสามารถรันได้โดยไม่ติด Error อะไรเลยครับ ^^
อ้อ!! ลืมบอกไปนิดนึงว่าต้องทำใส่ import java.math.BigDecimal; ไว้ด้วยนะครับ
ถ้าคราวหน้าพบปัญหาอะไรแล้วแก้ไขได้ ก็จะมาเล่าสู่กันฟังอีกนะครับ เผื่อเป็นประโยชน์ต่อหลายๆคนที่เข้ามาอ่าน :P
1 comment:
ขอบคุณย้งนะคะ ที่มาเล่าประสบการณ์ให้ฟัง ^^
Post a Comment