Friday, August 14, 2009

Axapta : Use variable in SQL Statement

การรับตัวแปรเพิ่มเข้าไปเป็นเงื่อนไขในส่วนของ SQL เช่น รับค่าจาก Dialog แล้วเอามาเติม Wildcard ก่อนที่จะ query
หากใช้ตัวแปรที่เป็น str ธรรมดาจะมี error message

"Container and unbound string (text) fields are not allowed here in a WHERE expression"



แก้ไขได้โดย กำหนดขนาดของ string ให้แน่นอน หรือประกาศเป็น extended datatype ไปเลย
เช่น

WrkCtrIdBase tmpStr;
str 10 tmpStr2;
;

tmpStr = strfmt("%1%2",wrkCtrIdBase,"-LA*");
SELECT sum(Amount) FROM prodRouteTrans WHERE prodRouteTrans.CategoryId LIKE tmpStr;

tmpStr2 = strfmt("%1%2",wrkCtrIdBase,"-LB*");
SELECT sum(Amount) FROM prodRouteTrans WHERE prodRouteTrans.CategoryId LIKE tmpStr2;

No comments: