โปรแกรมเมอร์ ASP จำนวนมากมีประสบการณ์ในการดำเนินการสืบค้นฐานข้อมูลแล้วแสดงผลลัพธ์การสืบค้นในตาราง HTML โดยปกติแล้วเราจะทำเช่นนี้:
| นี่คือคำพูด: - 'สร้างการเชื่อมต่อ/ชุดบันทึก 'เติมข้อมูลลงในวัตถุชุดระเบียน - <ตาราง> <% ทำในขณะที่ไม่ใช่ rs.EOF %> <TR> <TD ><%=rs(Field1)% ></TD> <TD ><%=rs(Field2)% ></TD> - </TR> <% rs.MoveNext วนซ้ำ %> </ตาราง> |
หากมีผลลัพธ์แบบสอบถามจำนวนมาก จะใช้เวลานานสำหรับเซิร์ฟเวอร์ในการตีความสคริปต์ ASP ของคุณ เนื่องจากมีคำสั่ง Response.Write จำนวนมากที่ต้องดำเนินการ ถ้าคุณใส่ผลลัพธ์ผลลัพธ์ทั้งหมดเป็นสตริงแบบยาว (จากถึง) จากนั้นเซิร์ฟเวอร์จะต้องตีความคำสั่ง Response.Write เพียงครั้งเดียว และจะเร็วขึ้นมาก ผู้มีความสามารถบางคนที่ Microsoft ได้เปลี่ยนแนวคิดนี้ให้กลายเป็นความจริง (โปรดทราบว่านี่เป็นฟีเจอร์ที่มีใน ADO 2.0 ขึ้นไปเท่านั้น หากคุณยังคงใช้เวอร์ชันก่อนหน้าอยู่ โปรดอัปเกรดเป็นเวอร์ชันล่าสุด)
ด้วยเมธอด GetString เราสามารถใช้ Response.Write ได้เพียงอันเดียวเพื่อแสดงเอาต์พุตทั้งหมด ซึ่งเหมือนกับ DO... LOOP loop ที่สามารถระบุได้ว่า Recordset เป็น EOF หรือไม่
การใช้งาน GetString มีดังต่อไปนี้ (พารามิเตอร์ทั้งหมดเป็นทางเลือก):
สตริง = recordset.GetString (StringFormat, NumRows, ColumnDelimiter, RowDelimiter, NullExpr)
ในการสร้างตาราง HTML จากผลลัพธ์ของ Recordset เราจำเป็นต้องดูแลพารามิเตอร์ GetString ประมาณ 3 ตัวจาก 5 ตัวเท่านั้น:
ColumnDelimiter (โค้ด HTML ที่แยกคอลัมน์ของชุดระเบียน), RowDelimiter (โค้ด HTML ที่แยกแถวของชุดระเบียน) และ NullExpr (โค้ด HTML ที่ควรสร้างขึ้นเมื่อระเบียนปัจจุบันว่างเปล่า) ดังที่คุณเห็นในตัวอย่างการสร้างตาราง HTML ด้านล่าง แต่ละคอลัมน์จะถูกคั่นด้วย... และแต่ละแถวจะถูกคั่นด้วย.... รหัสตัวอย่าง:
| นี่คือคำพูด: <%@ LANGUAGE=VBSCRIPT %> <% ตัวเลือกที่ชัดเจน 'เทคนิคการเขียนโค้ดที่ดี 'สร้างการเชื่อมต่อกับ DB' ดิมคอน ตั้งค่า conn = Server.CreateObject (ADODB.Connection) conn.Open DSN=ลมเหนือ; 'สร้างชุดบันทึก หรี่แสง ตั้ง rs = Server.CreateObject (ADODB.Recordset) rs.เปิด SELECT * จาก table1, conn 'เก็บเชือกเส้นใหญ่ของเราไว้เส้นหนึ่ง Dim strTable strTable = rs.GetString(,,</td><td>,</td></tr><tr><td> - - <HTML> <ร่างกาย> <ตาราง> <TR ><TD> <% การตอบสนอง เขียน (strTable) %> </TR></TD> </ตาราง> </ร่างกาย> </HTML> - 'ทำความสะอาด! rs.ปิด Setrs=ไม่มีอะไร เชื่อมต่อปิด ตั้งค่าคอน = ไม่มีอะไร - |
สตริง strTable ใช้เพื่อจัดเก็บโค้ดของตาราง HTML ที่เราสร้างขึ้นจากผลลัพธ์ของ SELECT * FROM table1
จะมีรหัส HTML ระหว่างแต่ละคอลัมน์ของตาราง HTML และรหัส HTML ระหว่างแต่ละแถวคือ วิธี GetString จะส่งออกรหัส HTML ที่ถูกต้องและเก็บไว้ใน strTable เพื่อให้เราต้องการเพียงบรรทัดเดียวของ Response.Write เพื่อส่งออก ชุดข้อมูล บันทึกทั้งหมดของ . ลองดูตัวอย่างง่ายๆ โดยสมมติว่าผลลัพธ์การสืบค้นของเราส่งคืนแถวและคอลัมน์ต่อไปนี้:
| นี่คือคำพูด: โคล1 โคล2 โคล3 แถวที่ 1 Bob Smith 40 แถวที่ 1 เอ็ด แฟรงค์ 43 แถวที่ 1 ซูโมฆะ 42 |
สตริงที่ส่งคืนโดยคำสั่ง GetString จะเป็น:
| นี่คือคำพูด: บ๊อบ</td ><td >สมิธ</td ><td >40</td ><td ></td ></tr ><tr >< ทีดี >เอ็ด... |
สตริงนี้ดูยาวและยุ่งเหยิง แต่เป็นโค้ด HTML ที่ต้องการ (โปรดทราบว่าเราจะใส่ไว้ข้างหลังในโค้ด HTML ที่เขียนด้วยลายมือ เนื่องจากสตริงการจัดรูปแบบของเราไม่มีสตริงที่จำเป็นสำหรับส่วนหัวและส่วนท้ายของตารางเหล่านี้)