全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3885
推到 Plurk!
推到 Facebook!

觸發trigger後的字串大小如何一致?

答題得分者是:chinyu
mingking0947
一般會員


發表:30
回覆:32
積分:12
註冊:2005-07-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-06-25 16:37:44 IP:220.228.xxx.xxx 訂閱
各位前輩:
小弟在interbase中建立了一個tirggers,但建立一筆資料後,卻無法讓欄位中的字串長度固定.
小弟要的字串長度為12(4碼年份,2碼月份,2碼日期,4碼流水號),但寫入字串長度卻為8碼(ex.今天新增資料,寫入字串為"20086251"),
請問小弟應該要如設定triggers呢?謝謝!!

triggers內容如下:
CREATE TRIGGER LOC_EXCHANGE_BI0 FOR LOC_EXCHANGE
ACTIVE BEFORE INSERT POSITION 0
AS
begin
NEW.EXCHANGE_ID =CAST(EXTRACT(YEAR FROM CURRENT_DATE) AS VARCHAR(4))||
CAST(EXTRACT(MONTH FROM CURRENT_DATE) AS VARCHAR(2))||
CAST(EXTRACT(DAY FROM CURRENT_DATE) AS VARCHAR(2))||
CAST(GEN_ID(gen_exchange1_id,1) AS VARCHAR(4));
NEW.EXCH_DATE = current_timestamp;
end
chinyu
高階會員


發表:12
回覆:157
積分:153
註冊:2002-06-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-06-28 23:26:45 IP:220.134.xxx.xxx 訂閱
[code sql]
CREATE OR ALTER trigger job_bi0 for job
active before insert position 0
AS
DECLARE VARIABLE sJobNo VARCHAR(10); /*編號*/
DECLARE VARIABLE iSeq integer; /*序號*/
begin
/*取建檔日期的編號最大值*/
SELECT MAX(JobNo) FROM job where CreDate=new.CreDate INTO :sJobNo;
if (sJobNo is null) then begin
iSeq = 1; /*無這日期的最大編號時,序號為 1*/
end
else begin
iSeq = cast(substr(sJobNo,8,10) as integer) 1; /*序號加 1 */
end
/*例:0930514001 三位數民國年 兩位數月份 兩位數日 三位數序號*/
NEW.JobNo=
substr(CAST(EXTRACT(YEAR FROM new.CreDate)-911 AS VARCHAR(4)),2,4)|| /*取年*/
substr(CAST(EXTRACT(MONTH FROM new.CreDate) 100 AS VARCHAR(3)),2,3)||/*取月*/
substr(CAST(EXTRACT(DAY FROM new.CreDate) 100 AS VARCHAR(3)),2,3)|| /*取日*/
substr(cast(iSeq 1000 as VARCHAR(4)),2,4); /*加1000是為前面補 0,取序號*/

update Make set JobOK='Y' where Makid=new.Makid;
update item set stockqty_half = stockqty_half new.stockqty_half where ItemNo=new.itemno;
end
[/code]
請參考,取兩個數就加100,再換為字串,取後兩碼即可,其餘以此類推。
編輯記錄
chinyu 重新編輯於 2008-06-28 23:28:14, 註解 無‧
mingking0947
一般會員


發表:30
回覆:32
積分:12
註冊:2005-07-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-06-30 10:53:19 IP:220.228.xxx.xxx 訂閱
感謝前輩詳細的回覆triggers內容,
但小弟在ibexperts的sql edit中下會出現"unknown Make".
請問"Make"及"Item"是內建關鍵字?或資料庫中的那個欄位?
謝謝!!
chinyu
高階會員


發表:12
回覆:157
積分:153
註冊:2002-06-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-07-01 13:41:32 IP:210.240.xxx.xxx 訂閱
這是我自已資料庫的table名稱,資料庫、欄位名稱請自行取代為你資料庫上的名稱
===================引 用 mingking0947 文 章===================
感謝前輩詳細的回覆triggers內容,
但小弟在ibexperts的sql edit中下會出現"unknown Make".
請問"Make"及"Item"是內建關鍵字?或資料庫中的那個欄位?
謝謝!!
mingking0947
一般會員


發表:30
回覆:32
積分:12
註冊:2005-07-08

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-07-07 18:04:28 IP:220.228.xxx.xxx 訂閱
謝謝!!
系統時間:2024-04-25 20:03:48
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!