2015年9月28日 星期一

SC error handling


if({password} != {repassword})
{
sc_error_message("ERROR: ERROR ERROR MEssage!!!!");
sc_error_exit();
} else {
{password} = md5({password});
}

2015年9月14日 星期一

運用MySQL的Trigger 來設計鎖單功能

一個商業上資料表單,經常應該經過審核過後,即會希望把單據鎖定,不再被修改或刪除。例如:訂單、進貨單、出貨單、請假單......
如果經過Approve過的單據,還可以隨意被修改,那不是很糟糕嗎!

如此的商業邏輯 Business Rule,應該由MySQL 來做就好,以輕鬆維持資料庫的完整性。
運用 MySQL的 Trigger 就可以輕鬆的做到。

方法是:在該表單的欄位裡面,增加一個 lock bit(1)的欄位。

然後,建立一個 Trigger BEFORE_UPDATE:

BEGIN
IF OLD.lock THEN
    SET NEW = 'ERROR: 本單已經鎖定,無法更改。如欲更改,請先解除鎖定狀態。';
END IF;
END

BEFORE_DELETE:
BEGIN
IF OLD.lock THEN
    SET NEW = 'ERROR: 本單已經鎖定,無法刪除。如欲刪除,請先解除鎖定狀態。';
END IF;
END

這樣就ok了!

2015年9月10日 星期四

Scriptcase 上傳到伺服主機時,要注意可讀寫

當Scriptcase發佈到服務主機時,要注意一下,某些資料夾的權限是需要開啟可讀寫的。

/_lib/tmp 是要可讀寫

2015年9月6日 星期日

MySQL SUM with LIMIT records

當使用 SUM() 做加總函數時,MySQL是針對所有的WHERE 條件的,如果有 LIMIT 現制筆數時,他並不會只針對現制筆數部分做部分加總。

SELECT sum(quantity) 
FROM stock_card
LIMIT 0,2;
以上,這樣會得到所有記錄的總加總,而不是只有兩筆;

SELECT sum(quantity) 
FROM (SELECT quantity
      FROM stock_card
      LIMIT 0,2
) AS subquery;
以上,這樣就可以僅僅兩筆的加總。

如何判斷現在FORM是在 insert mode? 還是 update mode?

只要用  if (empty({primary_key})) 就可以知道是否為新增模式了。 如果 {promary_key} 是空白的,那麼就是在新增模式;反之,就是更新模式。 以上。