OLD FoxBoard
foxboard Home FoxBoard



ยินดีต้อนรับ Guest ลงทะเบียน Login ค้นหากระทู้ แสดงรายชื่อสมาชิก
 หัวข้อสนทนาทั้งหมด
  New Foxboard
 
ชื่อเรื่อง #04636 หัวข้อ: ต้องการค้นหาข้อมูลและแทนค่าให้เร็วโดยใช้ SEEK เชิญถาม-ตอบปัญหาได้ที่นี่ครับ ตั้งชื่อกระทู้ใหม่
ส่งข้อความโดย rjkman วันที่ 09 ธ.ค. 2560 เวลา 17:28 น. - IP Logged
มุมมอง rjkman's ประวัติส่วนตัว ประวัติส่วนตัว   ค้นหากระทู้อื่นๆ rjkman ค้นหา   Quote rjkman Quote   Send Private Message ส่งข้อความ  
rjkman
Gold Member
Gold Member
Thailand
22 พ.ย. 2549
181 Posts
ผมใช้วิธีการค้นหาข้อมูลที่ต้องการในเครื่องแลน แล้วแทนค่าด้วยวันที่และราคาที่แก้ไขใหม่ ปัญหาที่พบคือมีบางครั้งที่ ราคาสินค้า"ไม่ถูกนำไปแทนค่า" ครับ รบกวนเรียนถามว่า
- เกิดจากอะไรได้บ้างครับ
- มีวิธีการค้นหาข้อมุลที่เครื่องแลน และแทนค่าในฟิลด์ที่ต้องการได้เร็วกว่านี้ไหมครับ เคยลองให้คำสั่ง locate หา ข้อมูลแล้วจึงแทนค่าโดย REPLACE...จะช้ามากครับ

     SELECT 78
        USE M:\VKP2\FOOD SHARE IN 78
     SET FIELD TO ALL
     SET INDEX TO FSDX2
     STORE ALLTRIM(MFOODNOQ) TO gcSeekVal
     SEEK gcSeekVal
     IF FOUND( ) && .AND. FOODNO = 'gcSeekVal'
          REPLACE FDATE WITH DATE() &&FOR FOODNO = ALLTRIM(MFOODNOQ)
             REPLACE FPRICE1 WITH MFPRICE1Q &&FOR FOODNO = ALLTRIM(MFOODNOQ)
          CLOSE INDEX
          CLOSE ALL
     ENDIF
ปัญหาที่พบคือมีบางครั้งที่ ราคาสินค้าไม่ถูกนำไปแทนค่า

ส่งข้อความโดย woof2000 วันที่ 12 ธ.ค. 2560 เวลา 09:48 น. - IP Logged
มุมมอง woof2000's ประวัติส่วนตัว ประวัติส่วนตัว   ค้นหากระทู้อื่นๆ woof2000 ค้นหา   Quote woof2000 Quote   Send Private Message ส่งข้อความ  
woof2000
Avatar
Gold Member
Gold Member
Thailand
28 มิ.ย. 2554
582 Posts
ถาม :- เกิดจากอะไรได้บ้างครับ
ตอบ :- อาจจะเกิดจากการสร้างดัชนีก็ได้นะครับ
   1. ลอง SET COLLATE TO "machine" ดูครับ
   2. ลอง INDEX ON <<field>> TAG <<name>> COLLATE "machine" ดูครับ
       เวลาเรียกใช้งาน SET ORDER TO 1 && TAG <<name>>

ถาม:- มีวิธีการค้นหาข้อมุลที่เครื่องแลน และแทนค่าในฟิลด์ที่ต้องการได้เร็วกว่านี้ไหมครับ
ตอบ:-ใช้วิธีนี้ผมว่าไวสุดแล้ว
   หรือลองคำสั่งนี้จะสั้นกว่า
   SELECT 78
        USE M:\VKP2\FOOD SHARE IN 78
   UPDATE FOOD SET FDATE = DATE(), FPRICE1 = MFPRICE1Q ;
        WHERE MFOODNOQ == gcSeekVal

ปล. ผมใช้ [==] คือ Exactly Equal คือต้องเท่ากันจริงๆทั้ง Field

-------------
เริ่มจาก Foxbase เรื่อยมาจนถึง Visual Foxpro 9

ส่งข้อความโดย sutinnick วันที่ 14 ธ.ค. 2560 เวลา 14:17 น. - IP Logged
มุมมอง sutinnick's ประวัติส่วนตัว ประวัติส่วนตัว   ค้นหากระทู้อื่นๆ sutinnick ค้นหา   Quote sutinnick Quote   Send Private Message ส่งข้อความ  
sutinnick
Avatar
Gold Member
Gold Member
Thailand
22 ก.ค. 2551
937 Posts
ผมสงสัยว่า บางทีมันอาจ .not. found() ถึงไม่ปรับให้ .. อาจมีความตกต่างระหว่างรหัสที่มา seek กับข้อมูลในตาราง
if found()
else
     ทดลองดักรายงานข้อผิดพลาดตรงนี้ บางทีโปรแกรมเราออกแบบว่ามันเจอแน่ๆ แต่บางทีมันมี bug
endif

-------------
เลือกหุ้นที่ซึมนาน มีสัญญาณวอลุ่มเข้า นั่งเฝ้าทั้งตลาด .. ขอบคุณ vfox ที่มอบสุดยอดโปรแกรมให้หาหุ้น ขอบคุณครับ..

ส่งข้อความโดย rjkman วันที่ 17 ธ.ค. 2560 เวลา 23:10 น. - IP Logged
มุมมอง rjkman's ประวัติส่วนตัว ประวัติส่วนตัว   ค้นหากระทู้อื่นๆ rjkman ค้นหา   Quote rjkman Quote   Send Private Message ส่งข้อความ  
rjkman
Gold Member
Gold Member
Thailand
22 พ.ย. 2549
181 Posts
ต้องขอขอบคุณ คุณ woof2000 และคุณ sutinnick เป็นอย่างสูงนะครับ ที่แนะนำมาตลอด จะลองนำไปปรับใช้ดูครับ ขอบคุณอีกครั้งครับ

-------------
rjkman

ส่งข้อความโดย Karopy วันที่ 27 เม.ย. 2561 เวลา 16:24 น. - IP Logged
มุมมอง Karopy's ประวัติส่วนตัว ประวัติส่วนตัว   ค้นหากระทู้อื่นๆ Karopy ค้นหา   Quote Karopy Quote   Send Private Message ส่งข้อความ  
Karopy
Gold Member
Gold Member
Thailand
15 ม.ค. 2550
13 Posts
พี่ วัติเก่งอยู่แล้วครับ ตอบได้หมดทุกคำถาม

ถ้าท่านต้องการตอบคำถามที่นี่ ท่านควรจะ  Login
ถ้าท่านยังไม่ได้ลงทะเบียน ท่านควรจะ  ลงทะเบียน

กระโดดไป เชิญถาม-ตอบปัญหาได้ที่นี่ครับ ตั้งชื่อกระทู้ใหม่
พิมพ์รายงาน พิมพ์รายงาน

Powered by Vfoxware Forums ver. 1.0
Copyright ©2006-2010 Vfoxware Guide