แนะนำ: พูดคุยเกี่ยวกับการเขียนโค้ดคล้ายกับฟังก์ชั่นเครื่องมือค้นหาโดยใช้ ASP ขั้นแรกให้สร้างฐานข้อมูลการเข้าถึง มีตาราง urlindex ในไลบรารีซึ่งฟิลด์ URL และคำหลักได้รับการจัดทำดัชนีตามลำดับดังนี้: ต่อไปนี้เป็นเนื้อหาอ้างอิง: ข้อความ URL (ดัชนี
มีหมวดหมู่การดำเนินการฐานข้อมูลจำนวนมากที่ค้นหาออนไลน์ ฉันไม่ได้ดีไปกว่านั้น แต่ฉันเพิ่งเขียนพวกเขาเองและใช้มันมากขึ้น ดังนั้นจึงไม่มีอะไรพิเศษเกี่ยวกับตัวฉันฉันแค่ใช้นิสัยของฉัน สำหรับประสิทธิภาพและด้านอื่น ๆ โปรดให้คำแนะนำฉัน! -
รหัสโปรแกรม:
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: - คลาส dbclass - 'คำอธิบายตัวแปร 'Conn -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 'strsql ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 'Vtbname ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 'VPKEY --------------------------------------------------------------------------------------------------------------------------------------------------------------------- 'vpgfields --------- ค้นหาฟิลด์ที่จะแสดงบนหน้า 'VPGSize ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 'vcurrpg -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 'VCONDITIONS ---- การสอบถามเงื่อนไขการเพจ 'Vorderby ------------- การเรียงลำดับหน้าสอบถาม - Private Conn, Strsql, VTBName, VPKEY, VPGFields, VPGSize, VCURRPG, VCONDITIONS, VORDERBY 'การเริ่มต้นของชั้นเรียน คลาสย่อย class_initialize () 'เมื่อเป็นฐานข้อมูล MS SQL ให้ตั้งค่าตัวแปรสองตัวต่อไปนี้ ชื่อ 'Dim Dbserver' หรือที่อยู่ IP ของเซิร์ฟเวอร์ฐานข้อมูล ชื่อฐานข้อมูล 'dim dbname' dim dbpath 'หากเป็นฐานข้อมูลการเข้าถึงให้ตั้งค่าพา ธ ที่นี่ Dim dbuser 'ชื่อผู้ใช้ล็อกอินของฐานข้อมูล รหัสผ่านเข้าสู่ระบบของโดเมน DBPass 'DBPass หรี่ dbpath = /testasp/data/data.mdb 'ตั้งค่าพา ธ ฐานข้อมูล dbuser = ผู้ดูแลระบบ dbpass = 123456 'ถ้าเข้าถึงได้และมีรหัสผ่าน connstr = provider = microsoft.jet.oledb.4.0; แหล่งข้อมูล = & server.mappath (dbpath) & _ ; ID ผู้ใช้ = & dBuser &; รหัสผ่าน =; Jet OLEDB: รหัสผ่านฐานข้อมูล = & DBPass 'ถ้าเข้าถึงได้และไม่มีรหัสผ่าน 'connstr = provider = microsoft.jet.oledb.4.0; แหล่งข้อมูล = & server.mappath (dbpath) 'ถ้าเป็นฐานข้อมูล MS-SQL 'connstr = provider = sqloledb; ID ผู้ใช้ = & dbuser &; รหัสผ่าน = & dbpass & _ - แคตตาล็อกเริ่มต้น = & dbname &; แหล่งข้อมูล = & dbserver เมื่อเกิดข้อผิดพลาดต่อไป SET Conn = Server.CreateObject (ADODB.Connection) conn.open connstr ERRMSG เชื่อมต่อกับฐานข้อมูล สิ้นสุดย่อย 'ชั้นเรียนจบ คลาสย่อย class_terminate () conn.close ตั้งค่า conn = ไม่มีอะไร สิ้นสุดย่อย - 'ตั้งค่าสำหรับตัวแปรของคลาส - 'ตั้งคำสั่ง SQL ทรัพย์สินสาธารณะให้ SQLSTR (ค่า byval) strsql = ค่า จุดสิ้นสุดของทรัพย์สิน 'ตั้งชื่อตารางของหน้าเคียวรี ทรัพย์สินสาธารณะให้ tbname (ค่า byval) vtbname = ค่า จุดสิ้นสุดของทรัพย์สิน - 'ตั้งค่าคีย์หลักของตารางเพจคิวรี ทรัพย์สินสาธารณะให้ pkey (ค่า byval) vpkey = ค่า จุดสิ้นสุดของทรัพย์สิน - 'ตั้งค่าฟิลด์ที่แสดง ทรัพย์สินสาธารณะให้ pgfields (ค่า byval) vpgfields = ค่า จุดสิ้นสุดของทรัพย์สิน - 'ตั้งจำนวนบันทึกที่แสดงต่อหน้า ทรัพย์สินสาธารณะให้ pgsize (ค่า byval) vpgSize = ค่า จุดสิ้นสุดของทรัพย์สิน - 'ตั้งจำนวนหน้าเว็บที่แสดงในปัจจุบัน ทรัพย์สินสาธารณะให้ CURRPG (ค่า byval) vCurrpg = ค่า จุดสิ้นสุดของทรัพย์สิน - 'ตั้งค่าเงื่อนไขการสอบถาม ทรัพย์สินสาธารณะให้เงื่อนไข (ค่า byval) ถ้า len (ค่า)> 0 แล้ว vConditions = โดยที่ & ค่า อื่น vConditions = โดยที่ 1 = 1 สิ้นสุดถ้า จุดสิ้นสุดของทรัพย์สิน - 'ตั้งค่าการสืบค้น ทรัพย์สินสาธารณะให้สั่งซื้อ (ค่า byval) ถ้า len (ค่า)> 0 แล้ว vorderby = สั่งซื้อโดย & ค่า อื่น vorderby = ค่า สิ้นสุดถ้า จุดสิ้นสุดของทรัพย์สิน - 'รับจำนวนระเบียนทั้งหมด ทรัพย์สินสาธารณะรับ vrscount () ถ้า vcurrpg = 1 แล้ว sqlc = เลือกนับ (& vpkey &) เป็น idcount จาก & vtbname & & vconditions ตั้งค่า rsc = server.createObject (adodb.recordset) RSC.OPEN SQLC, Conn, 0,1 rsnum = rsc (idcount) rsc.close ตั้งค่า rsc = ไม่มีอะไร ถ้า rsnum> 0 แล้ว Response.cookies (iRecord) = rsnum vrscount = rsnum อื่น vrscount = 0 สิ้นสุดถ้า อื่น vrscount = request.cookies (iRecord) สิ้นสุดถ้า จุดสิ้นสุดของทรัพย์สิน 'รับจำนวนหน้าทั้งหมด ทรัพย์สินสาธารณะรับ vpgcount () irscount2 = vrscount () ถ้า irscount2 mod vpgsize = 0 แล้ว vpgCount = int (irscount2/vpgsize) อื่น vpgCount = int (irscount2/vpgsize) 1 สิ้นสุดถ้า จุดสิ้นสุดของทรัพย์สิน 'สอบถามฐานข้อมูล ฟังก์ชั่นสาธารณะ RSDB () เมื่อเกิดข้อผิดพลาดต่อไป 'ผลลัพธ์การสืบค้นง่ายๆ 'ตั้งค่า rsdb = server.createObject (adodb.recordset) 'rsdb.open strsql, Conn, 1,3 ตั้งค่า rsdb = conn.execute (strsql) ฐานข้อมูล Query ERRMSG ฟังก์ชันสิ้นสุด 'เพิ่มอัปเดตลบบันทึกฐานข้อมูล ฟังก์ชั่นสาธารณะ updb () เมื่อเกิดข้อผิดพลาดต่อไป conn.execute (strsql) บันทึกฐานข้อมูล ERRMSG แก้ไข ฟังก์ชันสิ้นสุด - 'ฟังก์ชั่นชุดระเบียนที่ใช้ในการใช้การเพจ ฟังก์ชั่นสาธารณะ () เมื่อเกิดข้อผิดพลาดต่อไป Dim Startrs starttrs = (vcurrpg-1)*vpgsize - 'หากคุณใช้คำสั่งนี้คุณจะต้องแก้ไขรหัสตามพารามิเตอร์ โดยเฉพาะหากการเรียงลำดับเป็น ASC ดังนั้น <เปลี่ยนเป็น> และขั้นต่ำจะเปลี่ยนเป็นสูงสุด 'ถ้า starttrs = 0 แล้ว 'strsql = เลือก TOP & VPGSIZE & & VPGFIELDS & จาก & VTBNAME & & VCONDITIONS & & VORDERBY ' อื่น 'strsql = เลือก TOP & VPGSIZE & & VPGFIELDS & จาก & VTBNAME & & VCONDITIONS & & & VPKEY & < 'strsql = strsql & (เลือกขั้นต่ำ (& vpkey &) จาก (เลือก Top & Startrs & & vpkey & จาก 'strsql = strsql & vtbname & & vconditions & & vorderby &) เป็น idtable) & vorderby 'สิ้นสุดถ้า - ถ้า starttrs = 0 แล้ว strsql = เลือก top & vpgsize & & vpgfields & จาก & vtbname & & vconditions & & vorderby อื่น strsql = เลือก top & vpgsize & & vpgfields & จาก & vtbname & & vconditions & & & vpkey & not strsql = strsql & in (เลือก top & startrs & & vpkey & จาก & vtbname & & vconditions & & vorderby strsql = strsql &) & vorderby สิ้นสุดถ้า - ตั้งค่า pagers = server.createObject (adodb.recordset) pagers.Open strsql, Conn, 0,1 errmsg record pagination ฟังก์ชันสิ้นสุด - ฟังก์ชั่นสาธารณะ sqlpage () เมื่อเกิดข้อผิดพลาดต่อไป ตั้งค่า sqlpage = server.createObject (adodb.recordset) ตั้งค่า cm = server.createObject (adoDb.Command) CM.CommandType = 4 cm.activeconnection = conn cm.commandtext = sp_util_page cm.parameters (1) = vpgfields cm.parameters (2) = vtbname cm.parameters (3) = vconditions cm.parameters (4) = vorderby cm.parameters (5) = vpkey cm.parameters (6) = vcurrpg cm.parameters (7) = vpgsize cm.parameters (8) = vrscount () cm.parameters (9) = sqlpage.cursorLocation = 3 sqlpage.locktype = 1 SQLPAGE.OPEN CM errmsg record pagination ฟังก์ชันสิ้นสุด - 'ปิดชุดบันทึก objrs - ฟังก์ชั่นสาธารณะ CRS (BYVAL OBJRS) objrs.close () ตั้งค่า objrs = ไม่มีอะไร ฟังก์ชันสิ้นสุด - ฟังก์ชั่นสาธารณะ pagenav () irscount = vrscount () 'จำนวนระเบียนทั้งหมด myPage = vcurrpg'currpg'currpg'current จำนวนหน้าจำนวน pgCount = vpgCount () 'จำนวนหน้าทั้งหมด prepage = myPage-1 หากเตรียมอาหาร <1 แล้ว prepage = 1 สิ้นสุดถ้า NextPage = myPage 1 ถ้า NextPage> pgcount แล้ว NextPage = pgCount สิ้นสุดถ้า pagestr = <div id = fy> <span id = rpc> มีทั้งหมด & irscount & records & mypage &/& pgcount & </span> pagestr = pagestr & <a href = '? currpage = 1' class = 'aw'> บ้าน </a> <a href = '? currpage = & prepage &' class = 'aw'> หน้าก่อนหน้า </a> ถ้า (myPage-1) mod 4 = 0 แล้ว FIRSTPAGE = myPage elseif int ((myPage-1)/4) = 0 แล้ว FIRSTPAGE = 1 อื่น FIRSTPAGE = Int ((myPage-1)/4)*4 1 สิ้นสุดถ้า Endpage = FirstPage 4 Astr = สำหรับ i = FirstPage to Endpage Astr = Astr & <a href = '? currpage = & i &' ถ้า CSTR (myPage) = cstr (i) แล้ว Astr = Astr & id = 'currp' สิ้นสุดถ้า Astr = Astr &> & i & </a> ถ้าฉัน> pgcount-1 จากนั้นออกจาก ต่อไป Astr = Astr & <a href = '? currpage = & nextPage &' class = 'aw'> หน้าสุดท้าย </a> <a href = '? currpage = & pgcount &' class = 'aw'> หน้าสุดท้าย </a> </div> Pagestr = Pagestr & Astr pagenav = pagestr ฟังก์ชันสิ้นสุด 'ตารางเอาต์พุตพร้อมฟังก์ชั่นเพจเพจ ฟังก์ชั่น showtb (byval tbtil) ตั้งค่า rstb = pagers () 'หากเป็นขั้นตอนที่เก็บไว้ให้โทร sqlpage () tbrs = rstb.getrows () CRS (RSTB) itblrow = ubound (tbrs, 2) itblcol = ubound (tbtil) tbStr = <table border = '0' cellpacing = '0' cellpadding = '0' cellpadding = '0'> <tbody> สำหรับ r1 = 0 ถึง itblcol TR1 = TR1 & <td width = '& split (tbtil (r1), |) (1) &'> & split (tbtil (r1), |) (0) & </td> ต่อไป tr1 = <tr> & tr1 & </tr> สำหรับ ri = 0 ถึง itblrow สำหรับ ci = 0 ถึง itblcol td = td & <td width = '& split (tbtil (ci), |) (1) &'> & tbrs (ci, ri) & </td> ต่อไป tr = tr & <tr> & td & </tr> td = null ต่อไป tbtil = null tbrs = null response.write (tbstr & tr1 & tr & <tr> <td colspan = '& itblcol 1 &'> & pagenav () & </td> </tr> </tbody> </table>) tbstr = null tr1 = null tr = null ฟังก์ชันสิ้นสุด 'พิมพ์คำสั่ง SQL เพื่อให้คำสั่งจะตรวจสอบว่ามีข้อผิดพลาดใด ๆ prnsql สาธารณะ () Response.write (strsql) สิ้นสุดย่อย - 'ฟังก์ชั่นที่ทนต่อความผิดพลาด - ฟังก์ชั่นส่วนตัว errmsg (errmsg) ถ้า err.number <> 0 แล้ว 'หากมีปัญหาคุณสามารถใช้รหัสที่นี่เพื่อพิมพ์ข้อมูลคำอธิบายเพื่อการดีบักง่ายๆ แสดงความคิดเห็น Response.write (cstr (err.description) & <br>) err.lear Response.write <font color = '#ff0000'> & errmsg & error </font> 'ความคิดเห็น Response.end () สิ้นสุดถ้า ฟังก์ชันสิ้นสุด - 'ฟังก์ชั่นการยอมรับความผิดพลาดสิ้นสุดลง - ชั้นเรียนจบ - |
แชร์: รหัสตัวอย่าง FileSystemObject ในรหัสตัวอย่างที่อธิบายไว้ในส่วนนี้มีตัวอย่างในชีวิตจริงเพื่อแสดงคุณสมบัติหลายอย่างที่มีอยู่ในรูปแบบวัตถุ FileSySstemObject รหัสนี้แสดงคุณสมบัติทั้งหมดของวิธีการใช้รูปแบบวัตถุร่วมกันและวิธีการใช้อย่างมีประสิทธิภาพในรหัสของคุณเอง