PDA

View Full Version : Nên và không nên - SQL trả về Fox


NghiaBravo
11-16-2009, 12:13 PM
1. Không nên
TEXT TO _StrExec TEXTMERGE NOSHOW
Select *, 000000000000.000 AS So_LuongTh From b30Ct
ENDTEXT
_Error = SQLRun(_strExec, 'V_Tmp')

2. Nên
TEXT TO _StrExec TEXTMERGE NOSHOW
Select *, CAST(0 AS NUMERIC(15,3)) AS So_LuongTh From b30Ct
ENDTEXT
_Error = SQLRun(_strExec, 'V_Tmp')



--> Phong thủy Coding

Libra307
11-27-2009, 05:09 PM
Bác Nghiabravo chỉ nói nên hay ko nên mà ko nói tại sao lại như vậy. Liệu có phải khi đưa cast(0 AS Numeric(15,3)) AS th́ sẽ tường minh hơn. Do đă xác định đc độ rộng của trường là 15,3

NghiaBravo
11-28-2009, 09:34 AM
he he. Nói vậy là do ḿnh đă gặp trường hợp đó rồi. Nếu bạn dùng cách thứ nhất để đưa kết quả trả về fox th́ khi insert giá trị lớn vd: 123456789123.123 vào trường So_LuongTh th́ fox sẽ báo lỗi. Cho nên bạn nên làm theo cách thứ 2. Gặp đâu th́ nói đó chứ giải thích mô phạm th́ chịu. Fox và SQL cùng một nhà mà nó chẳng chịu hiểu nhau nữa huống hồ là ḿnh.