2018年9月29日 星期六

MySQL 日期的處理方式

DECLARE v_in_date DATE DEFAULT DATE_SUB(CURDATE(),INTERVAL 1 DAY);

DECLARE v_stage_id INT DEFAULT (SELECT stage_id FROM bonus_stage WHERE TO_DAYS(v_in_date)-TO_DAYS(begin_date) >=0  AND TO_DAYS(v_in_date)-TO_DAYS(end_date) <= 0);

2018年9月24日 星期一

2018年9月23日 星期日

codecharge 設計筆記



Codecharge 的 event
Before_Update
Before_Build_Update
Before_Execute_Update
做了一個隱藏的 text 連結到資料庫,然後在上面三個 update event 將之改變
然後,測試執行 update 後,是否更新到資料庫中
結果:只有 Before Update 有真的更新
其餘兩個,都還是原來的舊值,亦即沒有更新!
好奇怪喔!


Before Update Event
This event occurs at the onset of the operations performed to update a database record.
Possible applications:
  • Checking update rights
  • Preventing a row from updating
  • Setting custom query parameters 

Before Build Update Event
This event occurs before the creation of the query that will be used to update database content.
Possible applications:
  • Setting custom query parameters or changing existing ones

Before Execute Update Event
This event occurs after the query has been composed and immediately before a row update query is executed.
Possible applications:
  • Altering query parameters
  • Opening a transaction
  • Performing transaction operations



經過查詢 codecharge 的產生程式碼,他是 先處理 Before Update
然後進入 Update 程序了
在Update 的程序中,再進入 Before Build Update/Before Execute Update 裡
所以,如果在 Before Build Update/Before Execute Update裡面嘗試要去改變 連結資料欄位的值時已經來不及了。







=================
2018/09/22
================
留意:codecharge的 Object 階層關係。
Page -> Panel -> Form -> Control
查看 help 裡面的範例。
不是每個都可以 SetValue/GetValue
有些是只有 Visibl=True 之類的!

=======================
可以重複使用的內容,可以善用 includeable page 子頁的方式製作。






2018年9月22日 星期六

mysql : to_base64()

Description
Converts the string argument str to its base-64 encoded form, returning the result as a character string in the connection character set and collation.

The argument str will be converted to string first if it is not a string. A NULL argument will return a NULL result.

The reverse function, FROM_BASE64(), decodes an encoded base-64 string.

There are a numerous different methods to base-64 encode a string. The following are used by MariaDB and MySQL:

Alphabet value 64 is encoded as '+'.
Alphabet value 63 is encoded as '/'.
Encoding output is made up of groups of four printable characters, with each three bytes of data encoded using four characters. If the final group is not complete, it is padded with '=' characters to make up a length of four.
To divide long output, a newline is added after every 76 characters.
** 每76個字元,會有一個新行符號!
Decoding will recognize and ignore newlines, carriage returns, tabs, and spaces.

2018年9月14日 星期五

CSRF

CSRF 是一種 Web 上的攻擊手法,全稱是 Cross Site Request Forgery,跨站請求偽造。

https://blog.techbridge.cc/2017/02/25/csrf-introduction/


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

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