ASP 프로 그래 밍 입문 진급(20):ADO 구성 요소 의 디 스 플레이 데이터 기록
<%db_path = "database/cnbruce.mdb"Set conn= Server.CreateObject("ADODB.Connection")connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath(db_path)conn.Open connstr%>db_path="database/cnbruce.mdb"는 말 할 것 도 없 이 데이터베이스 의 상대 경 로 를 하나의 변수 에 부여 하여 아래 에서 계속 호출 할 수 있 도록 합 니 다.Set conn=Server.CreateObject("ADODB.Connection")는 다른 구성 요소 와 마찬가지 로 ADO 연결 을 만 들 고 대상 conn 으로 받 아들 입 니 다.connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath(db_path)는 데이터 베 이 스 를 여 는 구동 방법 인 OLEDB 와 어떤 데이터 베 이 스 를 여 는 연결(즉,데이터 베 이 스 를 여 는 경로)을 포함 한 연결 문자열 이 분명 합 니 다.다시 한 번 알려 드 려 야 할 것 은 FSO 가 파일,폴 더 에 대한 조작 이 든 ADO 가 데이터 베 이 스 를 조작 하 든 피 조작 파일 에 대한 획득 은 절대적 인 물리 적 주 소 를 얻 는 것 입 니 다.일반적인 상황 에서 Server.MapPath 방법 을 사용 하 는 것 이 좋 습 니 다.conn.Open connstr 마지막 대상 conn 은 연결 문자열 connstr 를 통 해 데이터베이스 연결 을 열 었 습 니 다.3.데이터베이스 내용 을 표시 하고 데이터 베 이 스 를 구축 하 며 데이터 베이스 와 의 연결 을 구축 합 니 다.아래 의 물 은 데이터 베이스 중의 내용 을 ASP 를 통 해 표시 하 는 것 입 니 다.2,showit.asp
<%Set rs=Server.CreateObject("ADODB.Recordset")sql="Select*from cnarticle"rs.Open sql,conn,1,1%><%if rs.EOF and rs.BOF thenresse.write("아직 글 이 없습니다")elseDo Until rs.EOFresponse.write("글 제목 은:"&rs("cntitle")response.write("
글 쓴 이 는"&rs("cnauthor")response.write("
<%rs.close Set rs=Nothingconn.close set conn=Nothing%>이 페이지 를 간단하게 디 버 깅 합 니 다.의외 의 사고 없 이 데이터베이스 에 있 는 정 보 를 표시 할 수 있 을 것 이 라 고 믿 습 니 다.(PS:내 데이터베이스 에 두 줄 이 쓰 여 있 습 니 다)다음은 안 되 는 의 미 를 구체 적 으로 설명 하 겠 습 니 다.1,아무런 논란 이 없습니다.주로 conn.asp 를 호출 하 는 효과 입 니 다.이것 은 conn.asp 파일 을 설명 할 때 이미 알 고 있 습 니 다.2,Set rs=Server.CreateObject("ADODB.Recordset")ADO 구성 요 소 는 Connection 연결 외 에 Recordset 바 인 딩 기록 집(DW 로 ASP 를 한 사람 이 이제 고향 으로 돌아 가 는 느낌 이 든다 고 믿 습 니 다)당연히 rs 는 데이터베이스 시트 의 한 줄 을 형상 적 으로 상상 할 수 있 습 니 다.3,sql="Select*from cnarticle"표준 SQL 구조 화 조회 언어.간단 합 니 다.데이터 베 이 스 를 연결 하고 기록 집 도 연결 되 었 습 니 다.구체 적 으로 어떤 정보 가 필요 합 니까?즉,일부 기록 집합 을 선별 해 야 하지만 현재 사용 하 는 것 은 어떠한 조건 도 없 이 모든 것 을 추출 할 수 있다.4.rs.Open sql,conn,1,1 데이터 베이스 에 기 록 된 문 을 진정 으로 열 고 뒤의 매개 변 수 는 다음 과 같은 사이트 에서 얻 을 수 있 습 니 다.http://www.cnbruce.com/blog/showlog.asp?cat_id=26&log_id=2835,if rs.EOF and rs.BOF then 이 문장 에는 rs.EOF 와 rs.BOF,그리고 이들 의 논리 연산 and 가 포함 되 어 있다.rs.EOF 는 데이터베이스 테이블 에 도착 한 마지막 줄 을 표시 하고,rs.BOF 는 데이터베이스 테이블 에 도착 한 첫 줄 을 표시 합 니 다.전체 문장 은 현재 데이터베이스 의 마지막 줄 이 데이터베이스 테이블 의 첫 줄 이 라면 현재 데이터베이스 테이블 에 데이터 가 없다 는 것 을 확신 할 수 있다.6,Do Until rs.EOF...rs.MoveNext Loop 은 주로 DO LOOP 순환 문 입 니 다.그 중에서 순환 의 종료 조건 은 rs.EOF,즉 데이터베이스 시트 의 마지막 줄 입 니 다.그렇다면 이 조건 들 이 만족 하 는 허가 안에 구체 적 인 정 보 를 표시 하 는 것 이다.매번 순환 할 때마다 데이터베이스 테이블 의 한 줄 만 표시 할 수 있 습 니 다.다음 줄 을 계속 읽 으 려 면 rs.MoveNext 기능 이 정말 그렇습니다.7,rs("cn_title")등 은 주로 기록 이 집 중 된 특정 필드 의 정보 값 을 구체 적 으로 표시 합 니 다.간단 해.8.마지막 으로 자원 공간 을 방출 하여 기록 집합 연결 을 닫 고 데이터 베 이 스 를 닫 는 것 을 잊 지 마 세 요.넷 째,일부 특수 한 조건 1.데이터 베이스 표 정보의 표 시 는 보통 시간의 선후 에 따라 배열 되 고 자주 언급 하 는 시간의 상승 순서에 따라 배열 된다 는 것 을 알 지 못 했다.주의:시간 에 따라 오름차 순 으로 모든 데이터베이스 시트 에 시간/날짜 형식의 필드 가 있어 야 하 는 것 은 아 닙 니 다.자동 번호 의 필드 만 존재 하면 됩 니 다.이 필드 는 영원히 중복 되 지 않 고 순서대로 커지 기 때문이다.따라서 시간 상승 순 서 는 자동 번호 의 번호 수치 증가 에 따라 정렬 된다.물론 문제 의 관건 은 시간의 내림차 순 으로 배열 하 는 것 이다.즉,최신 내용 부터 보 여 주 는 것 이다.그럼 구체 적 으로 어떤 수술 이 필요 합 니까?간단 합 니 다.연결 문자열 을 약간 수정 합 니 다.sql="Select*from cnarticle"에서 sql="Select*from cnarticle order by cnid desc"그 중 order by cnid 는 cnid 필드,desc 가 내 려 갑 니 다.2.가끔 은 최신 또는 최신 몇 가지 정 보 를 추출 해 야 할 때 가 있 습 니 다.그러면 이것 은 구체 적 으로 어떻게 조작 합 니까?역시 연결 문자열 의 수정 은 sql="Select*from cnarticle order by cnid desc"sql 로 변경 추가="Select top 3*from cnarticle order by cnid desc"중 top 3 은 최신 세 가지 정보 내용 을 추출 한 것 을 나타 낸다.That's All.현재 하나의 글 시스템,뉴스 시스템 또는 메모 장 에 표 시 된 부분의 정수 내용 을 당신 은 이미 힘 들 이지 않 고 해결 하 였 습 니 다.남 긴 것 은:글 의 형식 이 잘못 표시 되 었 을 수도 있 습 니 다.예 를 들 어 리 턴,빈 칸 이 표시 되 지 않 으 면 받 아들 인 데이터베이스 시트 의 값ASP 의 몇 가지 연습 에서 언급 된 것 입 니 다.을 처리 하 는 것 도 배 워 야 합 니 다.글 은 항상 데이터 베 이 스 를 열 어 정 보 를 입력 해 서 는 안 된다.그러면 ASP 로 데 이 터 를 라 이브 러 리 에 삽입 하 는 방법 을 계속 배 워 야 한다.그리고 문장 이 많아 서 한 페이지 를 보 는 것 도 귀 찮 지 않 습 니까?그럼 페이지 기술 도 배 워 야 돼...................................................................