เมื่อวานพยายามที่หาวิธีการ วน loop เข้าไปในแต่ละ row ที่ select มาได้ก็หาอยู่นานก็เจอคำสั่ง Fetchเข้า
เลยลองใช้ดู แหมน่าจะใช้มาตั้งนานแล้ว จะได้ไม่ต้องไปเขียนใน code behind
ขั้นตอนการใช้ก็ไม่มีไร
อันดับแรก ต้องทำการประกาศตัวแปร เป็น Curser ก่อน ดังนี้
DECLAREชื่อตัวแปรCURSOR FOR คำสั่ง select data(*** ต้องการใช้ค่าอะไรที่ select มาได้ ใน loop ควรระบุให้ดึงค่านั้นด้วย)
Table Pro_Out
--------------------------
Job_Pro_ID int
Count_Unit_ID int
Pro_Out_Serial int
Job_ID int
Tran_ID int
Pro_Out_Parent int
Pro_Out_Barcode varchar(50)
Pro_Out_Lot varchar(50)
Pro_Out_SerialNo varchar(50)
Pro_Confirm bit
เช่น มี table Pro_Out อยู่ แล้ว เราต้องการใช้ field pto_out_serial ใน loop เราจะทำการประกาศดังนี้
DECLARE contact_cursor CURSOR FOR select pro_out_serial from pro_out
อันดับที่ 2 ทำการ open cursur
OPEN ชื่อตัวแปรcursur
จากตัวอย่างก็จะเป็น OPEN contact_cursor
อันดับที่ 3 เริ่มทำการ fetch และให้ค่าที่ select มากับ ตัวแปรตัวหนึ่ง
โดยก่อนหน้าเราต้องทำการประกาศตัวแปรไว้ก่อนดังนี้
declare @serial int
FETCH NEXT FROM contact_cursor
INTO @serial
อันดับต่อมา เราจะเริ่มใช้ loop while เข้ามาช่วย ดังนี้
ใช้ while loop เข้ามา check Fetch_status ว่ามีrow ต่อไปให้ fetch หรือไม่
WHILE @@FETCH_STATUS = 0
BEGIN
--ภายในloop ก็อาจจะทำการ print ค่า หรือ แล้วแต่เราว่าต้องการทำอะไร
--อาจจะเป็นการเรียกใช้ procedureแล้วส่งค่านี้ให้กับโปรแกรมก็ได้
PRINT @list
--ทำการfech row ต่อไป
FETCH NEXT FROM contact_cursor
INTO @list
END
และสุดท้าย ที่ไม่ควรลืมค่า ทำการ close cursur และ deallocate
CLOSE contact_cursor
DEALLOCATE contact_cursor
ที่มา
http://myknowledge.exteen.com/category/Develop/page/4
or
http://myknowledge.exteen.com/category/Develop
ไม่มีความคิดเห็น:
แสดงความคิดเห็น