Welcome To The Home Of The Visual FoxPro Experts  
home. signup. forum. archives. search. google. articles. downloads. faq. members. weblogs. sponsors. rss.
 From: Stewart Chew
  Where is Stewart Chew?
 
 Malaysia
 Stewart Chew
 Tags
Subject: Insert & Update records
Thread ID: 145129 Message ID: 145129 # Views: 52 # Ratings: 0
Version: Visual FoxPro 9 Category: Databases, Tables and SQL Server
Date: Thursday, September 13, 2007 8:47:55 AM         
   


Dear Expert,

I would like to inquiry to all the expertise. If i have insert a lot a records into a cursor after that i use the command below to insert all separate table. I have a problem is when insert or update records need to take a long time. Does anyone here help me to resolve this problem.

SELECT part_code, SUM(iss_qty) as tl_iss, SUM(rtn_qty) as tl_rtn;
	FROM cWrkOrdr;
	GROUP BY part_code;
	INTO CURSOR cSumTtlQty NOFILTER

** UPDATE RETURNED
INSERT INTO Wrk_Ordr (rtn_date, wrk_ordr, prd_ordr, rtn_qty, part_code, qty_req, to_loc, id_upd, dt_upd);
	SELECT rtn_date, wrk_ordr, prd_ordr, rtn_qty, part_code, qty_req, to_loc, id_upd, dt_upd;
	FROM cWrkOrdr;
	WHERE cWrkordr.rtn_qty > 0

INSERT INTO stk_detl (date, ref_no, odr_ref, part_code, part_desc, part_loc, rtn_qty, unit_cost, do_date, source, updated, post_dt);
	SELECT cWrkOrdr.rtn_date, cWrkOrdr.prd_ordr, cWrkOrdr.wrk_ordr, cWrkOrdr.part_code, stkmst.part_desc, cWrkOrdr.to_loc,;
		cWrkOrdr.rtn_qty, stkmst.dec_cost2, cWrkOrdr.rtn_date as do_date, 'RF', .T., DATETIME();
		FROM cWrkOrdr INNER JOIN stkmst ON cWrkOrdr.part_code = stkmst.part_code;
		WHERE cWrkordr.rtn_qty > 0

UPDATE mrs_dtl SET tl_rtn = cWrkOrdr.rtn_qty;
	FROM mrs_dtl;
	INNER JOIN cWrkOrdr ON mrs_dtl.mrs_no = cWrkOrdr.mrs_no;
	WHERE cWrkOrdr.part_code = mrs_dtl.son_code;
	AND cWrkOrdr.prd_ordr = mrs_dtl.prd_ordr;
	AND cWrkordr.rtn_qty > 0
			
UPDATE stkmst SET qty_hand = stkmst.qty_hand + cSumTtlQty.tl_rtn;
	FROM stkmst;
	INNER JOIN cSumTtlQty ON stkmst.part_code = cSumTtlQty.part_code;
	WHERE cSumTtlQty.tl_rtn > 0

UPDATE loc_qty SET qty = loc_qty.qty + cSumTtlQty.tl_rtn;
	FROM loc_qty;
	INNER JOIN cSumTtlQty ON loc_qty.part_code = cSumTtlQty.part_code;
	WHERE loc_qty.part_loc = 'STORE';
	AND cSumTtlQty.tl_rtn > 0

UPDATE prd_detl SET tl_rtn = cWrkOrdr.rtn_qty;
	FROM cWrkOrdr;
	INNER JOIN prd_detl ON cWrkOrdr.prd_ordr = prd_detl.prd_ordr;
	WHERE cWrkOrdr.part_code = prd_detl.part_code;
	AND cWrkordr.rtn_qty > 0

UPDATE mrs_hdr SET status = 'R' FROM cWrkOrdr INNER JOIN mrs_hdr ON cWrkOrdr.mrs_no = mrs_hdr.mrs_no

** UPDATE ISSUED
INSERT INTO Wrk_Ordr (date, wrk_ordr, prd_ordr, iss_qty, part_code, qty_req, frm_loc, id_upd, dt_upd);
	SELECT date, wrk_ordr, prd_ordr, iss_qty, part_code, qty_req, frm_loc, id_upd, dt_upd;
	FROM cWrkOrdr;
	WHERE cWrkordr.iss_qty > 0
			
INSERT INTO stk_detl (date, ref_no, odr_ref, part_code, part_desc, part_loc, qty, unit_cost, do_date, source, updated, post_dt);
	SELECT cWrkOrdr.date, cWrkOrdr.prd_ordr, cWrkOrdr.wrk_ordr, cWrkOrdr.part_code, stkmst.part_desc, cWrkOrdr.frm_loc,;
		cWrkOrdr.iss_qty, stkmst.dec_cost2, cWrkOrdr.date as do_date, 'IP', .T., DATETIME();
		FROM cWrkOrdr;
		INNER JOIN stkmst ON cWrkOrdr.part_code = stkmst.part_code;
		WHERE cWrkordr.iss_qty > 0

UPDATE mrs_dtl SET tl_iss = cWrkOrdr.iss_qty;
	FROM cWrkOrdr;
	INNER JOIN mrs_dtl ON cWrkOrdr.mrs_no = mrs_dtl.mrs_no;
	WHERE cWrkOrdr.part_code = mrs_dtl.son_code;
	AND cWrkOrdr.prd_ordr = mrs_dtl.prd_ordr;
	AND cWrkordr.iss_qty > 0
			
UPDATE stkmst SET qty_hand = qty_hand - cSumTtlQty.tl_iss;
	FROM stkmst;
	INNER JOIN cSumTtlQty ON stkmst.part_code = cSumTtlQty.part_code

UPDATE loc_qty SET qty = qty - cSumTtlQty.tl_iss;
	FROM loc_qty;
	INNER JOIN cSumTtlQty ON loc_qty.part_code = cSumTtlQty.part_code;
	WHERE loc_qty.part_loc = 'STORE';
	AND cSumTtlQty.tl_iss > 0

UPDATE prd_detl SET tl_iss = cWrkOrdr.iss_qty;
	FROM cWrkOrdr;
	INNER JOIN prd_detl ON cWrkOrdr.prd_ordr = prd_detl.prd_ordr;
	WHERE cWrkOrdr.part_code = prd_detl.part_code;
	AND cWrkordr.iss_qty > 0

SELECT cWrkOrdr
ZAP IN SELECT([cWrkOrdr])	

IF USED([cSumTtlQty])
  SELECT cSumTtlQty
  USE
ENDIF

THISFORM.Release



Regards,

Stewart Chew



COMPLETE THREAD
Insert & Update records Posted by Stewart Chew @ 9/13/2007 8:47:55 AM
RE: Insert & Update records Posted by tushar @ 9/13/2007 10:12:55 AM
RE: Insert & Update records Posted by Stewart Chew @ 9/13/2007 11:33:53 AM
RE: Insert & Update records Posted by Ken Murphy @ 9/13/2007 12:40:19 PM
RE: Insert & Update records Posted by Stewart Chew @ 9/18/2007 3:54:33 AM
RE: Insert & Update records Posted by tushar @ 9/18/2007 11:44:22 AM
RE: Insert & Update records Posted by Ken Murphy @ 9/18/2007 2:12:41 PM
RE: Insert & Update records Posted by Stewart Chew @ 9/19/2007 2:39:21 AM
RE: Insert & Update records Posted by Ken Murphy @ 9/19/2007 2:55:43 PM
RE: Insert & Update records Posted by Stewart Chew @ 9/20/2007 4:18:16 AM
RE: Insert & Update records Posted by Ken Murphy @ 9/20/2007 1:45:31 PM
RE: Insert & Update records Posted by Cetin Basoz @ 9/20/2007 2:05:02 PM
RE: Insert & Update records Posted by Ken Murphy @ 9/20/2007 2:14:16 PM
RE: Insert & Update records Posted by Cetin Basoz @ 9/20/2007 2:26:32 PM
RE: Insert & Update records Posted by Ken Murphy @ 9/20/2007 2:43:10 PM
RE: Insert & Update records Posted by Cetin Basoz @ 9/20/2007 2:00:53 PM