2013-07-01 73 views
0

我有一個數據塊'Employee';我想在插入數據時手動生成ID字段值。所以我把ID字段隱藏在顯示畫布上。所以當我想點擊工具欄中的保存按鈕時,通常我會在Key-Commit觸發器中寫下如下代碼。但數據不會保存到數據庫。Oracle Forms 6i:如何從數據塊手動插入記錄到數據庫

declare 
    max_id employee.id%type; 
begin 
    select max(id)+1 into max_id from employee; 
    message(max_id); 
    if max_id is null then 
     max_id := 1; 
    end if; 

    insert into employee values(max_id, :first_name, :last_name, :phone); 
    IF Not Form_Success THEN    
      Message('Error prevented Commit'); 
      RAISE Form_Trigger_Failure; 
    END IF; 
end; 

我不明白爲什麼數據沒有插入或保存。我的觸發器好嗎?

+0

答:我將觸發器更改爲On-Insert(而不是Key-Commit),它工作正常。 –

+0

您也可以在插入後嘗試執行COMMIT。 –

回答

1

首先,如果您只需要填寫max_id,那麼您應該更好地使用預插入觸發器來填充字段。讓oracle表單處理插入。

其次,你在最後忘了提交。