권장 : ASP를 사용하여 검색 엔진 기능과 유사한 코드 작성에 대해 이야기하십시오. 먼저 액세스 데이터베이스를 만듭니다. 라이브러리에는 URL과 키워드 필드가 각각 색인화되는 라이브러리에 Urlindex 테이블이 있습니다. 다음은 참조 된 내용입니다. URL 텍스트 (index.
온라인으로 검색하는 데이터베이스 작업 범주가 많이 있습니다. 나는 그것보다 낫지는 않지만, 나는 단지 그들 스스로 글을 쓰고 더 많이 사용했습니다. 그래서 나에 대해 특별한 것은 없습니다. 나는 단지 내 습관을 사용합니다. 효율성 및 기타 측면에 관해서는 조언을 해주세요! !
프로그램 코드 :
| 다음은 인용 된 내용입니다. <% 클래스 dbclass '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- '변수 설명 'conn--------------------------------------------------------------------------------------------------------------------------- 'strsql ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------. 'vTbName------------------------------------------------------------------------------------------------------------------------ 'vPKey------------------------------------------------------------------------------------------------------------------------- 'vpgfields ---------- 페이지에 표시 할 필드를 쿼리합니다 'vPgSize-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 'vCurrPg----------------------------------------------------------------------------------------------------------------------- 'vconditions ---- 쿼리 페이징 조건 'vorderby ------------ 쿼리 페이지 정렬 '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Private Conn, Strsql, Vtbname, Vpkey, vpgfields, vpgsize, vcurrpg, vconditions, vorderby '수업 초기화 private sub class_initialize () 'MS SQL 데이터베이스 인 경우 다음 두 변수를 설정하십시오. 데이터베이스 서버의 'Dim Dbserver'이름 또는 IP 주소 'dim dbname'데이터베이스 이름 Dim DBPath '액세스 데이터베이스 인 경우 여기에서 경로를 설정하십시오. dim dbuser '데이터베이스의 로그인 사용자 이름 Dim DBPass '도메인의 로그인 암호 Dim Connstr dbpath = /testasp/data/data.mdb '데이터베이스 경로를 설정합니다 dbuser = admin DBPASS = 123456 '액세스하고 암호가있는 경우 connstr = provider = microsoft.jet.oledb.4.0; data source = & server.mappath (dbpath) & _ ; user id = & dbuser &; password =; jet oodb : 데이터베이스 비밀번호 = & dbpass '액세스하고 암호가 없다면 'connstr = provider = microsoft.jet.oledb.4.0; data source = & server.mappath (dbpath) 'MS-SQL 데이터베이스 인 경우 'connstr = 공급자 = sqloledb; 사용자 id = & dbuser &; 비밀번호 = & dbpass & _ ';; 초기 카탈로그 = & dbname &; 데이터 소스 = & dbserver 다음에 오류가 재개됩니다 set conn = server.createobject (adodb.connection) CONN.OCEN CONNSTR ERRMSG 데이터베이스에 연결합니다 종료 서브 '클래스 엔드 private sub class_terminate () conn.close Conn = 아무것도 설정하지 않습니다 종료 서브 '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- '클래스 변수에 대한 값을 설정합니다 '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 'SQL 문을 설정하십시오 공공 재산은 sqlstr (byval value) strsql = 값 종료 속성 '쿼리 페이지의 테이블 이름을 설정하십시오 공공 재산은 tbname (byval value) vtbname = 값 종료 속성 '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- '쿼리 페인트 테이블의 기본 키를 설정하십시오 공공 재산은 pkey (byval value) vpkey = 값 종료 속성 '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- '표시된 필드를 설정하십시오 공공 재산은 pgfields (byval value) vpgfields = 값 종료 속성 '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- '페이지 당 표시되는 레코드 수를 설정하십시오 공공 자산은 pgsize (byval 값) vpgsize = 값 종료 속성 '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- '현재 표시된 페이지 수를 설정하십시오 공공 재산 LET CURPG (Byval Value) vcurrpg = 값 종료 속성 '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- '쿼리 조건을 설정하십시오 공공 재산 let 조건 (byval 값) LEN (값)> 0이면 vconditions = 여기서 & 값 또 다른 vconditions = 여기서 1 = 1 끝 If 종료 속성 '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- '쿼리 종류를 설정하십시오 공공 재산 Let Orderby (Byval Value) LEN (값)> 0이면 vorderby = 주문 및 가치 또 다른 vorderby = 값 끝 If 종료 속성 '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- '총 레코드 수를 얻으십시오 공공 부동산 get vrscount () vcurrpg = 1이면 sqlc = & vtbname & & vconditions에서 idcount로 count (& vpkey &)를 선택하십시오 set rsc = server.createobject (adodb.recordset) rsc.open sqlc, conn, 0,1 rsnum = rsc (idcount) rsc.close RSC = 아무것도 설정하지 않습니다 rsnum> 0이라면 응답 .cookies (irecord) = rsnum vrscount = rsnum 또 다른 vrscount = 0 끝 If 또 다른 vrscount = request.cookies (irecord) 끝 If 종료 속성 '총 페이지 수를 얻으십시오 공공 부동산 get vpgcount () irscount2 = vrscount () Irscount2 mod vpgsize = 0 인 경우 vpgcount = int (irscount2/vpgsize) 또 다른 vpgcount = int (irscount2/vpgsize) 1 끝 If 종료 속성 '데이터베이스 쿼리 공개 기능 rsdb () 다음에 오류가 재개됩니다 '간단한 쿼리 결과 'set rsdb = server.createObject (adodb.recordset) 'rsdb.open strsql, conn, 1,3 set rsdb = conn.execute (strsql) ERRMSG 쿼리 데이터베이스 엔드 기능 '추가, 업데이트, 데이터베이스 레코드 삭제 공개 기능 uddb () 다음에 오류가 재개됩니다 conn.Execute (strsql) ERRMSG 데이터베이스 레코드를 편집합니다 엔드 기능 '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- '페이징을 구현하는 데 사용되는 레코드 세트 기능 공개 기능 호출기 () 다음에 오류가 재개됩니다 희미한 스타 startrs = (vcurrpg-1)*vpgsize '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- '이 명령문을 사용하는 경우 매개 변수에 따라 코드를 수정해야합니다. 구체적으로 정렬이 ASC 인 경우 <Change to> 및 Min은 MAX로 변경됩니다. 'Startrs = 0이면 'strsql = select & vpgsize & & vpgfields & from & vtbname & & vconditions & & vcordby ' 또 다른 'strsql = select & vpgsize & & vpgfields & from & vtbname & & vconditions & 및 & vpkey & < 'strsql = strsql & (Select Min (& vpkey &) From (Select & Startrs & & vpkey & from 'strsql = strsql & vtbname & & vconditions & & vorderby &) as idtable) & vorderby '끝 If '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- startrs = 0이면 STRSQL = 선택한 TOP & VPGSIZE & & VPGFIELDS & FROM & VTBNAME & & VCONDITIONS & & VORDERBY 또 다른 strsql = select & vpgsize & & vpgfields & from & vtbname & & vconditions & 및 & vpkey & not strsql = strsql & in (select top & startrs & & vpkey & from & vtbname & & vconditions & & vcordby strsql = strsql &) & vorderby 끝 If '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Set Pager = Server.createObject (adodb.recordset) Pagers. OPEN STRSQL, CONN, 0,1 errmsg 레코드 페이지 매김 엔드 기능 '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 공개 기능 sqlpage () 다음에 오류가 재개됩니다 sqlpage = server.createobject (adodb.recordset) cm = server.createobject (adodb.command) set 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 레코드 페이지 매김 엔드 기능 '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- '레코드 세트 objrs를 닫으십시오 '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 공개 기능 CR (Byval OBJRS) objrs.close () OBJRS = 아무것도 설정하지 않습니다 엔드 기능 '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 공개 기능 pagenav () irscount = vrscount () '총 레코드 수 mypage = vcurrpg'currpg'currpg'current 페이지 수 pgcount = vpgcount () '총 페이지 수입니다 예선 = MyPage-1 예방당 <1이면 비위 = 1 끝 If NextPage = MyPage 1 NextPage> pgcount라면 NextPage = pgcount 끝 If pagest = <div id = fy> <span id = rpc> 총 & irscount & records & mypage &/pgcount & </span>가 있습니다 pagest = pagestr & <a href = '? currpage = 1'class = 'aw'> home </a> <a href = '? currpage = & preatage &'class = 'aw'> 이전 페이지 </a> if (mypage-1) mod 4 = 0입니다 FirstPage = MyPage elseif int ((MyPage-1)/4) = 0입니다 FirstPage = 1 또 다른 FirstPage = int ((MyPage-1)/4)*4 1 끝 If 엔드 페이지 = 첫 페이지 4 ast = i = 첫 페이지에 대한 엔드 페이지 ast = ast & <a href = '? currpage = & i &' cstr (myPage) = cstr (i) 인 경우 ast = ast & id = 'currp' 끝 If Astr = Astr &> & i & </a> i> pgcount-1이라면 종료하십시오 다음 ast = ast = ast & <a href = '? currpage = & nextpage &'class = 'aw'> 마지막 페이지 </a> <a href = '? currpage = & pgcount &'class = 'aw'> 마지막 페이지 </a> </div> Pagest = Pagestr & Astr pagenav = pagest 엔드 기능 '페이징 기능이있는 출력 테이블 기능 showtb (byval tbtil) set rstb = pager () '저장된 절차 인 경우 sqlpage ()를 호출하십시오. tbrs = rstb.getrows () CRS (RSTB) itblrow = ubound (tbrs, 2) itblcol = ubound (tbtil) tbstr = <테이블 테두리 = '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.clear response.write <font color = '#ff0000'> & errmsg & error </font> '주석 응답 () 끝 If 엔드 기능 '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- '결함 공차 함수는 종료됩니다 '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 수업 종료 %> |
공유 : FileSystemObject 샘플 코드 이 섹션에 설명 된 샘플 코드에서는 파일 시스템 개체 객체 패턴에서 사용 가능한 많은 기능을 설명하기 위해 실제 예제가 제공됩니다. 이 코드는 객체 패턴을 함께 사용하는 방법의 모든 기능과 자신의 코드에서 효과적으로 사용하는 방법을 보여줍니다.