註釋:代碼中的SQLTXT1,STR1是在這段代碼之前賦值的。該代碼是在一button下的問題:a用戶click了該button,黨a用戶在執行到存儲過程的時候,
b用戶這時候click了該button,這樣QM_WIP2_MRB_Y_DETAIL等多張表中的數據變 了造成數據的不一致,因爲其沒有涉及到事物的概念。求解:我怎樣去解決該問題???QRYTEMP2.Close;
QRYTEMP2.SQL.Clear;
QRYTEMP2.SQL.Add('DELETE FROM QM_WIP2_MRB_Y_DETAIL');
QRYTEMP2.ExecSQL; QRYTEMP2.Close;
QRYTEMP2.SQL.Clear;
QRYTEMP2.SQL.Add('INSERT INTO QM_WIP2_MRB_Y_DETAIL( RECORD_ID,POST_RECORD_ID,SCRAP_ID,ST_FOR_ASSESS,NUM_PICS,CON_DATE,PART_ID,SCRAP_NAME,THIS_BASE_ID,THIS_LOT_ID,THIS_VER,NUM_PICS1,SURFACE,THREAD,FINAL_THICK,BOARD_THICK,USER_3,SCRAP_UM) ('+SQLTXT1+')');
QRYTEMP2.ExecSQL;
QRYTEMP2.Close;
QRYTEMP2.SQL.Clear;
QRYTEMP2.SQL.Add('INSERT INTO QM_WIP2_MRB_Y_DETAIL( RECORD_ID,POST_RECORD_ID,SCRAP_ID,ST_FOR_ASSESS,NUM_PICS,CON_DATE,PART_ID,SCRAP_NAME,THIS_BASE_ID,THIS_LOT_ID,THIS_VER,NUM_PICS1,SURFACE,THREAD,FINAL_THICK,BOARD_THICK,USER_3,SCRAP_UM)('+STR1+')');
QRYTEMP2.ExecSQL; QRYTEMP2.Close;
QRYTEMP2.SQL.Clear;
QRYTEMP2.SQL.Add('DELETE FROM QM_TEMP_WIP2ST_RECORD');
QRYTEMP2.ExecSQL; QRYTEMP2.Close;
QRYTEMP2.SQL.Clear;
QRYTEMP2.SQL.Add('INSERT INTO QM_TEMP_WIP2ST_RECORD(RECORD_ID,THIS_BASE_ID,THIS_ST_ID,NEXT_ST_ID,NUM_PICS,OP_DATE,PART_ID_WIP,PART_ID_INF,USER_3)('+SQLTOTAL+')');
QRYTEMP2.ExecSQL;下面是對該表進行操作的存儲過程(省落)
b用戶這時候click了該button,這樣QM_WIP2_MRB_Y_DETAIL等多張表中的數據變 了造成數據的不一致,因爲其沒有涉及到事物的概念。求解:我怎樣去解決該問題???QRYTEMP2.Close;
QRYTEMP2.SQL.Clear;
QRYTEMP2.SQL.Add('DELETE FROM QM_WIP2_MRB_Y_DETAIL');
QRYTEMP2.ExecSQL; QRYTEMP2.Close;
QRYTEMP2.SQL.Clear;
QRYTEMP2.SQL.Add('INSERT INTO QM_WIP2_MRB_Y_DETAIL( RECORD_ID,POST_RECORD_ID,SCRAP_ID,ST_FOR_ASSESS,NUM_PICS,CON_DATE,PART_ID,SCRAP_NAME,THIS_BASE_ID,THIS_LOT_ID,THIS_VER,NUM_PICS1,SURFACE,THREAD,FINAL_THICK,BOARD_THICK,USER_3,SCRAP_UM) ('+SQLTXT1+')');
QRYTEMP2.ExecSQL;
QRYTEMP2.Close;
QRYTEMP2.SQL.Clear;
QRYTEMP2.SQL.Add('INSERT INTO QM_WIP2_MRB_Y_DETAIL( RECORD_ID,POST_RECORD_ID,SCRAP_ID,ST_FOR_ASSESS,NUM_PICS,CON_DATE,PART_ID,SCRAP_NAME,THIS_BASE_ID,THIS_LOT_ID,THIS_VER,NUM_PICS1,SURFACE,THREAD,FINAL_THICK,BOARD_THICK,USER_3,SCRAP_UM)('+STR1+')');
QRYTEMP2.ExecSQL; QRYTEMP2.Close;
QRYTEMP2.SQL.Clear;
QRYTEMP2.SQL.Add('DELETE FROM QM_TEMP_WIP2ST_RECORD');
QRYTEMP2.ExecSQL; QRYTEMP2.Close;
QRYTEMP2.SQL.Clear;
QRYTEMP2.SQL.Add('INSERT INTO QM_TEMP_WIP2ST_RECORD(RECORD_ID,THIS_BASE_ID,THIS_ST_ID,NEXT_ST_ID,NUM_PICS,OP_DATE,PART_ID_WIP,PART_ID_INF,USER_3)('+SQLTOTAL+')');
QRYTEMP2.ExecSQL;下面是對該表進行操作的存儲過程(省落)
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货