Microsoft의 ASP 프로그래밍 시스템에서는 ADO 개체를 설정하면 웹 페이지에서 데이터베이스에 쉽게 액세스할 수 있습니다. 특히 ADO의 Recordset 개체를 사용하면 데이터의 출력 및 표시를 더욱 편리하고 자유롭게 제어할 수 있습니다. Visual InterDev6.0(이하 VI6.0)에서는 Script Object Model(이하 SOM), Design-Time Control(이하 DTC) 및 Data Environment Object와 같은 개체 모델의 도입으로 인해 모델(이하 DEOM)은 데이터베이스에 대한 웹페이지 액세스 설계를 더욱 편리하게 만듭니다.
주제 때문에 데이터베이스 연결과 관련하여 아래에는 코드와 간단한 설명만 제공되며 Recordset 개체(또는 컨트롤)를 사용하여 데이터 레코드의 페이징 표시를 구현하는 방법에 중점을 둡니다. 내가 이해한 바에 따르면 페이징 표시의 핵심은 ADO의 Recordset 개체 또는 DTC(디자인 타임 제어)의 Recordset 컨트롤의 속성과 메서드에 대한 숙련도에 있습니다.
페이지에 표시되는 7가지 유형의 무기는 4가지 범주로 요약될 수 있습니다.
나는 첫 번째와 두 번째 방법을 순수 ASP 방법이라고 임시로 부르는데, 이는 국내 ASP 웹사이트에서 가장 일반적으로 사용되는 방법이기도 하며 차이점은 구현 기술에만 있습니다. 이 두 가지 방법의 구현은 이해하기 가장 쉽고, 최소한의 개체 개념을 사용하며, 개발 환경에 대한 요구 사항이 가장 낮습니다(메모장만으로도 충분합니다). 이 두 가지 방법의 본질은 여전히 CGI 프로그래밍 아이디어라고 할 수 있지만 프로그램에는 ADO 개체가 도입됩니다.
네 번째와 다섯 번째 DHTML 메서드의 이름은 임시로 SOM으로 지정됩니다. 이 두 가지 방법을 사용하려면 Microsoft에서 제안한 스크립트 개체 모델과 VI6.0 환경의 DHTML에 있는 Table 개체의 새로운 데이터베이스 바인딩 기능을 사용해야 합니다(많은 책과 기사에서는 DHTML의 CSS 기능만 소개하고 스타일에 사용됩니다). 클라이언트 측에서 페이지 전환을 제어하기 위해 데이터 바인딩 기능의 도입을 설계하고 무시합니다. 그러나 이를 위해서는 사용자의 브라우저가 Microsoft Internet Explorer 4.0 이상과 같은 DHTML을 지원해야 합니다.
여섯 번째 방법은 일시적으로 SOM 서버 측 방법으로 명명됩니다. VI6.0 환경에서 개발해야 하며 Microsoft에서 제안한 스크립트 개체 모델의 여러 DTC 컨트롤인 Recordset, PageObject, Grid 등을 사용하여 서버 측(클라이언트)에서 페이지 넘기기 컨트롤을 구현합니다. 이것은 웹 페이지를 객체로 처리하는 흥미롭고 새로운 프로그래밍 방법입니다(이 객체 모델은 전통적인 DOM 문서 객체 모델과 다릅니다. DOM은 클라이언트만 제어할 수 있고 SOM은 서버와 클라이언트를 제어할 수 있습니다). 웹 페이지 지향 프로그래밍. 하지만 안타깝게도 제 개인적 능력이 부족해서인지 개인적으로 이 기술은 아직 그다지 성숙하지 못했다고 생각합니다. 예를 들어 브라우저와의 통합이 그다지 좋지 않은데 이에 대해서는 나중에 자세히 설명하겠습니다.
일곱 번째 방법은 일시적으로 DEOM 방법으로 명명됩니다. 또한 VI6.0에서 확립된 데이터 환경 객체 모델을 사용하여 레코드세트 객체를 생성합니다. 이는 웹 프로그래밍에서 비교적 새로운 방법이기도 하며 SOM 모델과 비교하면 고유한 장점이 있으며 이에 대해서는 나중에 자세히 설명하겠습니다.
아래에 인용된 모든 예제 소스 코드는 원리를 이해하지 않고도 직접 복사하여 사용할 수 있습니다. 굵은 글씨와 기울임꼴 부분을 해당 데이터베이스 이름이나 필드 이름으로 바꾸면 됩니다.
다양한 페이징 방법을 자세히 소개하기 전에 먼저 데이터베이스를 만듭니다. Office97의 액세스를 사용하여 Employee.mdb를 만들고 그 안에 emp 테이블을 만든 다음 emp ID, 성, 이름의 세 가지 필드만 설정합니다. 이것이 그렇게 간단한 이유는 레코드세트의 결과를 처리하는 방법에 관심이 있기 때문입니다.
첫 번째 방법: 직접 매개변수 대체 방법
이 방법은 Recordset 개체를 수동으로 만들고 해당 개체의 페이지 크기(페이지당 표시되는 레코드의 지정된 수), 페이지 수(총 페이지 수) 및 절대 페이지(현재 페이지 번호) 속성을 사용하여 페이징 출력을 제어하는 것입니다. Paging은 <href>를 사용하여 페이지 넘김을 제어하기 위해 페이지 번호 매개변수를 직접 가져옵니다. 웹페이지 이름은 emp1.asp입니다. 소스 코드는 다음과 같습니다.
<%//employee.mdb 데이터베이스와 연결을 설정합니다.
conn = Server.CreateObject(ADODB.Connection) 설정
conn.Open 드라이버={Microsoft Access 드라이버(*.mdb)};dbq=employee.mdb
//emp 테이블의 Recordset 객체 인스턴스 rs를 생성합니다.
rs = Server.CreateObject(ADODB.Recordset) 설정
rs.Open emp, conn, 3
PageSize = 10 //pagesize 속성은 각 페이지에 표시할 레코드 수를 지정합니다.
Page = CLng(Request(Page)) '문자열 형식을 긴 형식으로 변환
페이지 < 1이면 페이지 = 1
페이지 > rs.PageCount이면 페이지 = rs.PageCount
페이지 <> 1이면
Response.Write <A HREF=emp1.asp?Page=1>첫 번째 페이지</A>
Response.Write <A HREF=emp1.asp?Page= & (페이지-1) & >이전 페이지</A>
종료 조건
페이지 <> rs.PageCount 그러면
Response.Write <A HREF=emp1.asp?Page= & (Page+1) & >다음 페이지 </A>
Response.Write <A HREF=emp1.asp?Page=&rs.PageCount & >마지막 페이지</A>
종료 조건
응답.페이지 번호 쓰기: & 페이지 & / & rs.PageCount & </font>
//각 페이지 표시
//헤더 표시
Response.Write <CENTER><TABLE BORDER=1>
응답.WRITE <TR><TD> & rs.Fields(emp ID).이름 & </TD>
응답.WRITE <TD> & rs.필드(성).이름 & </TD>
응답.WRITE <TD> & rs.필드(이름).이름 & </TD></TR>
//각 레코드를 표시하는 루프
rs.AbsolutePage = Page //absolutepage 속성에 페이지 번호를 할당하여 현재 페이지의 첫 번째 레코드 번호를 확인합니다.
iPage = 1의 경우 rs.PageSize로 //
응답.WRITE <TR><TD> & rs.Fields(emp ID).Value & </TD>
응답.WRITE <TD> & rs.Fields(이름).Value & </TD>
응답.WRITE <TD> & rs.Fields(성).Value & </TD></TR>
rs.이동다음
rs.EOF인 경우 종료 대상
다음
응답.쓰기 </TABLE></CENTER>%>
두 번째 유형: 양식 전송 매개변수 방법
이 방법은 페이지 넘김을 제어할 때 페이지 넘김을 구현하기 위해 <input> 및 Case 문을 사용한다는 점을 제외하면 Recordset 개체를 생성할 때 첫 번째 방법과 동일합니다. 웹페이지 이름은 emp2.asp입니다. 이 방법은 프로그래밍 논리에 단점이 있습니다. 이전 페이지 또는 다음 페이지 버튼을 누른 후 브라우저의 새로 고침 버튼을 누르면 페이지가 자동으로 넘어갑니다. 소스 코드는 다음과 같습니다.
if Pagenum = Then Pagenum = 1 //첫 번째 페이지부터 표시 시작
//데이터베이스 연결 및 Recordset 개체 인스턴스 rs를 설정합니다.
첫 번째 방법과 동일하므로 여기서는 건너뜁니다.
RS.Pagesize = 10 '한 페이지에 표시되는 레코드 수를 10으로 설정
// 페이지 넘김 동작 결정
케이스 선택 요청(NAV)
사례
세션(페이지 번호) = 1
case First ' 첫 번째 기록
세션(페이지 번호) = 1
case Prev ' 이전 기록
세션(페이지 번호) > 1이면
세션(페이지 번호) = 세션(페이지 번호) - 1
종료 조건
케이스 Next '다음 레코드
session(Pagenum)<RS.PageCount이면
세션(페이지 번호) = 세션(페이지 번호) + 1
다음과 같은 경우 종료
Case Last ' 마지막 기록
세션(페이지 번호) = RS.PageCount
선택 종료
RS.Absolutepage = Clng(session(Pagenum)) //현재 페이지의 첫 번째 레코드 번호 확인
//현재 페이지 표시
첫 번째 방법과 동일하므로 여기서는 건너뜁니다.
// 탐색 페이지 버튼 설정
<양식 방법=GET 조치=emp2.asp>
<입력 유형=제출 이름=NAV 값=홈페이지>
<입력유형=제출값=이전페이지명=NAV>
<입력유형=제출값=다음페이지명=NAV>
<입력유형=제출값=마지막 페이지 이름=NAV></양식>
세 번째 유형: Grid 컨트롤을 사용하여 페이징 디자인
모든 방법 중에서 이것이 가장 쉽습니다. DTC의 Recordset 컨트롤과 Grid 컨트롤을 ASP 웹 페이지로 드래그하기만 하면 됩니다. 또한 서버 플랫폼 또는 클라이언트 플랫폼에서 페이지 넘김을 제어할지 여부를 선택할 수도 있습니다. 단점은 주어진 형식으로 표시해야 하고, 테이블의 표시 형식을 직접 제어할 수 없다는 점입니다.
방법은 다음과 같습니다.
VI6.0에서 emp.vip 프로젝트를 생성합니다. 그런 다음 프로젝트에 asp 웹 페이지(emp3.asp)를 추가합니다.
1단계: VI6.0의 메뉴 표시줄에서 데이터 연결 추가...를 선택하고 개발 도구의 탐색 프롬프트를 따르십시오. Employee.mdb 데이터베이스와의 연결을 쉽게 설정할 수 있습니다. DTC 도구 모음에서 Recordset 컨트롤을 웹 페이지로 끌어서 해당 속성을 설정합니다. 그림에 표시된 대로:
컨트롤을 웹 페이지로 드래그하면 VI6.0이 스크립팅 개체 모델을 사용할지 여부를 자동으로 묻는 메시지를 표시합니다. 예를 누릅니다.
3단계: DTC 도구 모음에서 웹 페이지로 Grid 컨트롤을 드래그한 다음 마우스 오른쪽 버튼을 클릭하고 다음과 같은 속성을 설정합니다. 두 번째 단계에서 만든 Recordset 컨트롤의 이름을 선택하고 emp 테이블에서 필드를 선택합니다. , 각 페이지 표시되는 레코드 수와 표시 형식 등 매우 간단하고 편리합니다. 탐색 안내를 따르기만 하면 됩니다.
네 번째 방법: DHTML 방법 1.
데이터 레코드는 HTML 테이블에 표시됩니다. DHTML 테이블의 데이터 바인딩 기능을 사용하여 레코드의 페이징 표시를 제어합니다. 단점은 페이지 넘김 방법이 특정 방식으로 제한된다는 것입니다. 즉, 이전 및 다음 페이지만 가능하고 첫 번째 및 마지막 페이지는 불가능합니다. 페이지 넘김은 클라이언트 측에서 제어되므로 이 방법과 다섯 번째 방법이 가장 빠르지만, 안타깝게도 DHTML을 지원하는 브라우저에서만 사용할 수 있습니다.
DHTML에서 <TABLE>의 DATASRC 속성은 테이블을 데이터 소스에 바인딩할 수 있게 하며, 또 다른 속성인 DATAPAGESIZE는 한 번에 페이지에 표시되는 레코드 수를 지정합니다.
다음 예를 살펴보겠습니다.
1단계: Recordset 컨트롤을 새로 생성된 웹 페이지 emp4.htm으로 끌어서 해당 속성을 설정합니다. 방법은 여기서 생략된 세 번째 방법과 동일합니다.
2단계: 다음 코드를 입력하세요.
<TABLE ID=Table1 DATASRC=#Recordset1_RDS DATAPAGESIZE=5> //Recordet 컨트롤의 이름이 이전에 Recordset1로 지정되었다고 가정합니다. 페이지당 5개의 레코드를 표시합니다.
<테드>
<TH ALIGN=왼쪽 WIDTH=150>Emp ID</TH> //출력 헤더
<TH ALIGN=왼쪽 WIDTH=200>성</TH>
<TH ALIGN=왼쪽 WIDTH=200>이름</TH>
</THEAD>
<TR>
<TD><DIV DATAFLD=Emp ID></DIV></TD> //출력 테이블 내용
<TD><DIV DATAFLD=성></DIV></TD>
<TD><DIV DATAFLD=이름></DIV></TD>
</TR>
</표>
3단계: 그런 다음 페이지 탐색을 위한 한 쌍의 DTC 버튼 버튼 컨트롤을 추가합니다. 하나는 btnPrevious(이전 페이지)이고 다른 하나는 btnNext(다음 페이지)입니다. 해당 스크립트는 다음과 같습니다.
<스크립트 언어=VBScript>
함수 btnPrevious_onclick()
Table1.이전페이지()
기능 종료
함수 btnNext_onclick()
Table1.nextPage()
기능 종료
</스크립트>
다섯 번째 방법: DHTML 방법 2
이 방법은 네 번째 방법을 개선한 것입니다. 수동으로 스크립트를 작성하는 방법을 사용하여 홈 페이지와 마지막 페이지 탐색 버튼을 만들고 각 레코드의 위치(레코드 번호)를 결정할 수 있습니다. 지면의 제약으로 인해 아래에서는 구체적인 사례만 소개하고 간략한 설명을 하도록 하겠습니다. DHTML 및 Recordset 컨트롤에 대한 기타 속성 및 메서드에 대해서는 관련 도서를 참조하세요. 여기서 주목해야 할 점은 Recordset 컨트롤이 첫 번째 및 두 번째 방법에서 소개된 ADO Recordset 개체와 다소 다르다는 것입니다. Recordset 컨트롤은 페이지 크기, 페이지 수 등의 속성을 직접 제공하지 않으며 설명된 방법을 사용하여 계산해야 합니다. 아래에.
1단계: Recordset 컨트롤을 새로 생성된 웹 페이지 emp5.htm으로 끌어서 이름을 Recordset1로 지정하고 해당 속성을 설정합니다. 방법은 여기서 생략된 세 번째 방법과 동일합니다.
2단계: 전역 변수 3개를 정의하고 Recordset1의 ondatasetcomplete(데이터 설정 완료) 스크립트를 작성합니다.
Dim gCurrentPageNumber //현재 페이지 번호
Dim gMaxPageNumber //최대 페이지 수
Dim gRecordsPerPage //페이지당 레코드 수 표시
gRecordsPerPage = 5 //페이지당 표시되는 레코드 수를 5개 레코드로 설정합니다.
함수 Recordset1_ondatasetcomplete()
totalRecordCount = Recordset1.getCount() //총 레코드 수
gMaxPageNumber = Int(totalRecordCount / gRecordsPerPage) //최대 페이지 수를 가져옵니다.
(totalRecordCount Mod gRecordsPerPage) > 0이면
gMaxPageNumber = gMaxPageNumber + 1
종료 조건
기능 종료
3단계: 페이지 탐색 버튼을 만듭니다.
함수 btnFirst_onclick() '홈페이지로 이동
gCurrentPageNumber = 1
디스플레이데이터()
기능 종료
함수 btnPrevious_onclick() '이전 페이지로 이동
gCurrentPageNumber > 1이면
gCurrentPageNumber = gCurrentPageNumber - 1
디스플레이데이터()
종료 조건
기능 종료
함수 btnNext_onclick() '다음 페이지로 이동
gCurrentPageNumber < gMaxPageNumber이면
gCurrentPageNumber = gCurrentPageNumber + 1
디스플레이데이터()
종료 조건
기능 종료
함수 btnLast_onclick() '마지막 페이지로 이동
gCurrentPageNumber = gMaxPageNumber
디스플레이데이터()
기능 종료
4단계: 각 페이지를 표시하는 함수를 작성합니다. 많은 DHTML 속성과 메서드가 사용됩니다. 독자는 관련 책을 참조하는 것이 좋습니다.
하위디스플레이데이터()
startRecord = ((gCurrentPageNumber - 1) * gRecordsPerPage) + 1 //각 페이지 시작 부분에 표시되는 레코드 수(위치, 번호) 계산
행Ctr = 1
lblPageNumber.innerHTML = gCurrentPageNumber & / & gMaxPageNumber
For RecordPtr = startRecord To (startRecord + gRecordsPerPage - 1) //페이지의 각 레코드를 표시하는 루프
If RecordPtr > Recordset1.getCount() Then //빈 테이블 표시
Table1.rows(rowCtr).cells(0).innerHTML = <P> </P>
Table1.rows(rowCtr).cells(1).innerHTML = <P> </P>
Table1.rows(rowCtr).cells(2).innerHTML = <P> </P>
Table1.rows(rowCtr).cells(3).innerHTML = <P> </P>
Else //각 페이지를 구체적으로 표시
Recordset1.moveAbsolute(recordPtr) //레코드 포인터를 이동합니다.
empID = Recordset1.fields.getValue(emp ID)
empLName = Recordset1.fields.getValue(이름)
empFName = Recordset1.fields.getValue(성)
Table1.rows(rowCtr).cells(0).innerText = RecordPtr ' 카운터
Table1.rows(rowCtr).cells(1).innerText = empID
Table1.rows(rowCtr).cells(2).innerText = empLName
Table1.rows(rowCtr).cells(3).innerText = empFName
종료 조건
rowCtr = rowCtr + 1
다음
서브 끝
또한 창 개체의 onload 이벤트에 다음 스크립트도 작성해야 합니다.
rowCtr = 1에서 gRecordsPerPage까지
Table1.insertRow(rowCtr) '새 열 삽입
cellCtr = 0 ~ 3의 경우
Table1.rows(rowCtr).insertCell()
다음
다음
여섯 번째 방법: 서버 측 제어 페이지 넘김 방법.
서버 측에서 데이터를 페이지 매김하여 HTML 문을 구성한 다음 이를 클라이언트에 출력하면 브라우저가 DHTML을 지원하지 않는 문제는 없습니다. 그러나 서버측 방법을 사용하려면 페이지를 넘길 때마다 Recordset 컨트롤을 다시 생성해야 하므로 DHTML 방법을 사용하는 것보다 확실히 속도가 느립니다. 그러나 서버가 충분히 빠르면 이 느린 클라이언트는 이를 알아차리지 못할 것입니다.
다음 예에서는 새로운 DTC 컨트롤인 PageObject를 소개합니다. 이 컨트롤은 지정된 웹 페이지를 웹 페이지 개체로 만들고, 이 웹 페이지의 서버 스크립트에서 사용자가 구성한 서브루틴과 기능을 웹 페이지 개체의 메소드로 간주할 수 있습니다. 이는 상태 정보를 관리하는 고급 방법을 제공합니다. 웹 페이지 개체에는 일부 속성(변수)이 있으며 사용자는 이러한 속성의 수명을 정의할 수 있습니다. 위의 특성으로 인해 페이지 넘김 스크립트를 컴파일하는 것이 매우 편리합니다.
하지만 이 방법의 단점은 이전 페이지나 다음 페이지 버튼을 누른 후 브라우저의 새로 고침 버튼을 누르면 웹 페이지가 자동으로 전환된다는 것입니다. 또한, 브라우저의 뒤로 버튼을 누른 후 페이지 넘김 버튼을 누르면 랜덤 페이지가 발생할 수 있습니다. 이는 모두 웹 페이지 개체 속성(전역 변수)으로 인해 발생합니다.
1단계: Recordset 컨트롤을 새로 생성된 웹 페이지 emp6.asp로 끌어서 이름을 Recordset1로 설정하고 해당 속성을 설정합니다. 방법은 여기서 생략된 세 번째 방법과 동일합니다.
2단계: PageObject 컨트롤을 웹 페이지로 드래그하고 이름을 emplist로 지정합니다. 그런 다음 이 컨트롤을 마우스 오른쪽 버튼으로 클릭하여 속성 페이지를 열고 MaxPageNumber, RecordsPerPage 및 CurrentPageNumber의 세 가지 속성(전역 변수)을 설정합니다. VI6.0은 get 및 set 메소드를 사용하여 해당 값을 읽고 쓸 수 있습니다. 구체적인 사용법은 관련 정보를 참조하십시오.
3단계: Recordset1의 ondatasetcomplete 이벤트를 작성합니다.
함수 Recordset1_ondatasetcomplete()
recordsPerPage = 5
empList.setRecordsPerPage(recordsPerPage)//웹 페이지 객체의 페이지당 레코드 수 속성을 5로 설정합니다.
totalRecordCount = Recordset1.getCount()//레코드 세트의 총 레코드 수를 가져옵니다.
mpn = Int(totalRecordCount / recordsPerPage) //mpn을 총 페이지 수로 계산합니다.
(totalRecordCount Mod recordsPerPage) > 0이면
MPN = MPN + 1
종료 조건
empList.setMaxPageNumber(mpn)
기능 종료
4단계: 4개의 버튼 컨트롤을 웹 페이지로 드래그하고 페이지 넘김 제어 스크립트를 작성합니다. 우리는 주로 웹 페이지 개체의 CurrentPageNumber 속성 값을 변경하여 페이지 전환을 수행합니다.
함수 btnFirst_onclick() '홈페이지로 이동
empList.setCurrentPageNumber(1)
기능 종료
함수 btnPrevious_onclick() '이전 페이지로 이동
cpn = empList.getCurrentPageNumber()
cpn > 1이면
empList.setCurrentPageNumber(cpn - 1)
종료 조건
기능 종료
함수 btnNext_onclick() '다음 페이지로 이동
cpn = empList.getCurrentPageNumber()
cpn < empList.getMaxPageNumber()인 경우
empList.setCurrentPageNumber(cpn + 1)
종료 조건
기능 종료
함수 btnLast_onclick() '마지막 페이지로 이동
empList.setCurrentPageNumber( empList.getMaxPageNumber() )
기능 종료
페이지에 처음 들어갈 때 첫 번째 페이지가 표시되도록 하려면 웹 페이지 개체의 onEnter 이벤트도 작성해야 합니다.
함수 empList_onEnter()
empList.firstEntered 경우 다음
empList.setCurrentPageNumber(1)
종료 조건
기능 종료
5단계: 각 페이지를 표시하는 스크립트를 작성합니다.
<HR><TABLE BORDER=0><TR>//헤더 표시
<TH ALIGN=왼쪽 WIDTH=35></TH>
<TH ALIGN=왼쪽 WIDTH=150>Emp ID</TH>
<TH ALIGN=왼쪽 WIDTH=200>성</TH>
<TH ALIGN=왼쪽 WIDTH=200>이름</TH></TR>
<%
pageNumber = empList.getCurrentPageNumber()//DHTML 방법 2와 동일하게 페이지 넘김에 필요한 다양한 매개변수를 계산합니다.
recordsPerPage = empList.getRecordsPerPage()
startRecord = ((pageNumber - 1) * recordsPerPage) + 1
lastRecord = Recordset1.getCount()
RecordPtr = startRecord To (startRecord + recordsPerPage - 1)%>
<%If Recordset1.EOF = True Then%>
<TR>
<TD> </TD>
<TD> </TD>
<TD> </TD>
<TD> </TD>
</TR>
<%그 외%>
<%Recordset1.moveAbsolute(recordPtr)%>
<TR>
<% If RecordPtr <= lastRecord Then %>
<TD><%=recordptr%></TD>
<%그 외%>
<TD> </TD>
<%끝나면 %>
<TD><%=Recordset1.fields.getValue(emp ID)%></TD>
<TD><%=Recordset1.fields.getValue(성)%></TD>
<TD><%=Recordset1.fields.getValue(이름)%></TD>
</TR>
<%종료%%>
<%다음%>
</TABLE><인사>
일곱 번째 방법: Data Environment Object Model(데이터 환경 개체 모델) 방법
데이터 환경 개체 모델은 ADO 개체 모델과 해당 개체(Connection, Command, Recordset, Field 및 Parameter 개체)를 더 간단한 형태로 추상화합니다. 데이터 환경 개체 모델은 명령을 메서드로 노출합니다. 사용자는 명령을 실행하고 결과 레코드 세트를 반환하는 이러한 메서드를 호출할 수 있습니다. DEOM 객체 모델에 대한 자세한 내용은 관련 서적을 참고하시기 바랍니다. 다음 웹 페이지 emp7.asp의 예를 살펴보겠습니다.
1단계: VI6.0의 프로젝트 탐색기 창에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 팝업 메뉴에서 데이터 연결 추가를 선택합니다. VI가 제공하는 탐색 프롬프트에 따라 데이터베이스에 대한 연결을 설정한 후 사용자는 ASP 어플리케이션에서 데이터베이스에 접근하기 위한 데이터 명령을 추가합니다. 동시에 프로젝트 탐색기 창의 global.asa 파일 아래에 데이터 환경 개체가 표시됩니다.
2단계: 데이터 환경 개체를 마우스 오른쪽 버튼으로 클릭하고 팝업 메뉴에서 데이터 명령 추가 옵션을 선택하여 데이터 명령 Command1을 추가합니다. VI6.0의 탐색 프롬프트에 따라 Command1 속성 팝업 창의 일반 페이지에서 SQL 문을 선택하고 다음을 입력할 수 있습니다: select * from emp. 돌아가려면 확인을 누르세요.
3단계: 데이터 명령을 만든 후 데이터 환경 개체에 대한 메서드를 만든 다음 스크립트에서 이 메서드를 호출하면 해당 메서드가 사용자에게 레코드 집합을 반환합니다.
thisPage.createDE() //SOM 모드에서 thisPage는 현재 웹 페이지 개체를 나타내고 createDE() 메서드는 DE 개체를 생성합니다.
DE.Command1//다음에 매개변수가 올 수 있는 DE 개체의 명령을 실행합니다. 이는 조건부 쿼리를 수행할 때 매우 유용합니다.
rs=DE.rsCommand1//DE.rscommand1을 설정하면 rs 개체가 ADO Recordset 개체와 완전히 동일해집니다.
4단계: rs는 ADO 개체이기 때문에 다음 페이지 전환 코드는 위에 소개된 여러 메서드를 완전히 참조하므로 여기서는 건너뜁니다.
기타에는 FrontPage2000의 데이터베이스 탐색에 구현된 메서드 등이 포함됩니다. 이 항목과 관련이 없으므로 여기서는 생략합니다.
정리하자면, 앞서 소개한 각 방식에는 공간적 제약으로 인해 깊이 있게 논의할 수 없는 신기술이 많이 포함되어 있다. 이 기사에서는 페이지 넘기기의 구체적인 예를 통해 ASP 웹 페이지 프로그래밍의 다양한 방법을 소개하고자 합니다. 웹 페이지를 준비하는 데 있어 VI6.0의 강력한 기능을 경험하고 ADO, DHTML, DTC 컨트롤을 사용하는 방법을 익히십시오. , SOM 개체 모델 및 DEOM 개체 모델이 웹 페이지를 컴파일할 때 더 많은 선택과 참조를 제공할 수 있기를 바랍니다.