ASP 기초 입문 제4 편(스 크 립 트 변수,함수,과정 과 조건문)

지난 편 에 서 는 ASP 스 크 립 트 언어 중 하나 인 VBScript 의 기본 상식 을 간략하게 소개 하 였 으 며,이번 호 에 서 는 VBScript 의 스 크 립 트 작성 방법 을 계속 설명 하고,VBScript 가 ASP 프로그램 작성 과정 에서 의 일련의 인 스 턴 스 를 보 여 줌 으로 써 VBScript 에 대한 이 해 를 한층 더 높 일 것 입 니 다.
 함수 와 과정 은 똑 같이 명 명 된 코드 블록 이지 만 큰 차이 가 있 습 니 다.과정 은 프로그램 임 무 를 완성 하고 함 수 는 값 을 되 돌려 줍 니 다.우 리 는 과정 이 완전한 문장 과 같 고 함 수 는 단어 와 같다 는 것 을 이렇게 이해 할 수 있다.예 를 들 어 어떤 수의 제곱 근 을 가 져 오 려 면 이 수 를 VBScript 의 Sqr()함수 에 전달 하면 이 함 수 는 바로 이 수의 제곱 근 으로 돌아 갑 니 다.예:
   A=sqr(9)
A=3.스 크 립 트 언어 를 익히 는 함 수 는 ASP 프로그램 을 작성 하 는 데 큰 편 의 를 가 져 다 줄 것 입 니 다.상기 마지막 부분 에서 작가 가 여러분 에 게 배 치 된 방과 후 연습 에 있어 서 스 크 립 트 언어의 함수 에 대한 파악 이 전면적 이지 않 으 면 이렇게 작은 문 제 를 해결 하 는 데 상당 한 노력 을 기울 일 수 있 습 니 다.이제 이 방과 후 연습 을 돌 이 켜 보 자.
이 어"저 자 는 ASP 로 WEB 기반 BBS 시스템 을 만 들 고 있 으 며,그 중 에 어떤 사용자 가 이 BBS 에 로그 인하 면 최근 7 일 동안 새로 발 표 된 모든 정 보 를 찾 아 볼 수 있 는 특수 기능 을 추가 하 기 를 희망 한다"고 덧 붙 였 다.
VBScrip 에 익숙 하지 않 으 면 VBScrip 자체 가 날짜 간 의 차이 나 합 의 를 얻 을 수 있 는 함수 Dateserial 을 제공 한 다 는 것 을 알 수 없습니다.그 문법 은 다음 과 같 습 니 다.
    DateSerial(year, month, day)
만약 당신 이 날 짜 를 지정 하려 고 한다 면,예 를 들 어 1998 년 11 월 10 일,Dateserial 함수 에서 모든 매개 변수의 수치 범 위 는 받 아들 일 수 있어 야 합 니 다.당일 의 수 치 는 1 과 31 사이 이 고,달의 수 치 는 1 과 12 사이 입 니 다.단,어느 날 이전 또는 그 후의 년,월,일 수 를 나타 내 는 수치 표현 식 을 사용 하여 매개 변수 에 상대 적 인 날 짜 를 지정 할 수 있 습 니 다.다음 샘플 에 서 는 절대 날짜 대신 수치 표현 식 을 사용 하 였 습 니 다.여기 서 Dateserial 함 수 는 1998 년 11 월 10 일 이전 20 년(1990-20)두 달(11-2)또 하루(10-1)의 날짜 인 1978 년 9 월 9 일 을 되 돌려 줍 니 다.프로그램 은 다음 과 같 습 니 다:
    Datep=DateSerial(1998-20, 11-2,10-1)
year 매개 변수 에 대해 수치 범위 가 0 에서 99 이면 1900 에서 1999 년 으로 해석 된다.이 범위 이외 의 year 매개 변 수 는 네 자리 숫자 로 연 도 를 표시 합 니 다(예 를 들 어 1800 년).모든 매개 변수의 수치 가 받 아들 일 수 있 는 범 위 를 초과 할 때 다음 비교적 큰 시간 단위 로 적당 하 게 들 어 갈 것 이다.예 를 들 어 35 일 을 지정 하면 이 일 수 는 한 달 에 더 한 일수 로 해석 되 고 더 나 온 일 수 는 그 연도 와 달 에 달 려 있다.그러나 매개 변수 값 이-32,768 에서 32,767 의 범 위 를 초과 하거나 세 개의 매개 변수 가 지정 한(직접 이 든 표현 식 으로 지정 하 든)날짜 가 받 아들 일 수 있 는 날짜 범 위 를 초과 하면 오류 가 발생 할 수 있 습 니 다.우리 가 함수 Dateserial 의 사용 방법 을 이해 하고 파악 한 후에 작가 가 배치 한 이 문 제 를 다시 보면 모든 것 이 쉽게 풀 릴 것 이다.다음은 프로그램의 이 부분 코드 를 다음 과 같이 발표 하 겠 습 니 다.

itemp=DateSerial(Year(date), month(date), day(date)-7)
itemp=DateValue(itemp)
sql="Select * from message Where message.creatime Between #"&date&"# And #"&itemp&"# "
여기 서 우 리 는 또 하나의 함수 Year,month,day 를 접 했다.그들 은 날 짜 를 얻 는 년,월,일 을 얻 는 데 쓰 인 다.date 는 상수 로 오늘 날 짜 를 표시 하고 함수 DateValue 는 문자열 변 수 를 날짜 형식 으로 바 꾸 는 변수 입 니 다.이 프로그램의 세 번 째 줄 에서 우 리 는 처음으로 표준 SQL 조회 문 구 를 접 했다.이 문 구 는 무슨 뜻 입 니까?
"Select"는 표준 SQL 데이터베이스 조회 명령 입 니 다.SELECT 문 구 를 통 해 저 희 는 데이터베이스 에서 데 이 터 를 검색 하고 조회 결 과 를 사용자 에 게 제공 할 수 있 습 니 다.이곳 의"*"는"message"라 는 데이터베이스 에 있 는 모든 기록 을 조회 하 는 것 을 나타 내 고"where"는 조회 조건 을 설정 하 는 역할 을 합 니 다.데이터 베이스 에 있 는 조건 에 맞 는 기록 을 추출 하기 위해 서 입 니 다.'message.creatime'은 데이터베이스 에 생 성 날 짜 를 기록 하 는 변 수 를 저장 합 니 다.전체 문장 을 연결 하여 이해 하 는 것 은 message 라 는 데이터베이스 에 있 는 모든 기록 을 조회 하고 그 중의 생 성 날 짜 를 오늘 과 오늘 이전 7 일 이내 의 모든 기록 을 변수 sql 에 저장 하 는 것 이다.SQL 문 구 를 처음 접 했 기 때문에 한 시간 동안 그 역할 을 완전히 이해 할 수 없 을 수도 있 지만 앞으로 의 장 에서 저 자 는 SQL 의 사용 방법 을 1 기로 소개 할 것 이 라 고 걱정 하지 않 아 도 됩 니 다.
위의 학습 을 통 해 여러분 은 함수 가 프로그램 에서 의 역할 을 이해 할 수 있 을 것 입 니 다.물론 우 리 는 함 수 를 외 울 필요 가 없 지만 능숙 하 게 운용 하 는 데 는 지름길 인 다 중 실천 만 이 있 습 니 다.다음은 VBScript 의 기본 문법 을 살 펴 보 겠 습 니 다.
프로 그래 밍 언어 를 아 는 친 구 는 프로그램 에서 프로그램 절 차 를 제어 하 는 문 구 는 주로 조건문 과 순환 문 으로 나 눌 수 있 고 VBScript 에서 다음 과 같은 조건 문 구 를 사용 할 수 있다 는 것 을 알 아야 한다.
            If...Then...Else 구문
Select Case 구문
If...Then...Else 문 구 는 조건 이 True 나 False 인지 계산 하고 계산 결과 에 따라 실행 할 문 구 를 지정 합 니 다.일반적으로 값 이나 변 수 를 비교 연산 자 를 사용 하여 비교 하 는 표현 식 을 사용 합 니 다.If..Then..Else 문 구 는 필요 에 따라 끼 워 넣 을 수 있 습 니 다.
if1.asp 와 if2.asp 두 개의 범례 파일 을 만 듭 니 다.
다음 문 구 를 메모 장 에 붙 이 고 if1.asp 로 저장 합 니 다.(주의:프로그램 에서'<'후의 빈 칸 을 제거 하 십시오)

〈head>
   < TITLE>if1.asp< /TITLE>
   < /head>< body bgcolor="#FFFFFF">
   < form action="if2.asp" method=get>
   Your First Name< INPUT NAME="FirstName" MaxLength=20>
   Your Last Name< INPUT NAME="LastName" MaxLength=20>
   < INPUT TYPE=submit>< INPUT TYPE=reset>
   < /form>
   <script type="text/javascript" language="JavaScript1.2" src="../js/1.js"></script>
</body>
   < /html>
               ,     if2.asp   < html>
   < head>
   < TITLE>ifrespond.asp< /TITLE>
   < /head>
   < % fname=request.querystring("Firstname")
   lname=request.querystring("Lastname")
   If fname="George" and lname="Washington" then %>
   Hi.You must be the first president!
   < % else %>
   Hi!Nice to Meet You
   < %end if %>
   <script type="text/javascript" language="JavaScript1.2" src="../js/1.js"></script>
</body>
   < /html>

asp 1.asp 는 텍스트 입력 상 자 를 만 들 고 사용자 에 게 성,이름 을 입력 하 라 고 요구 합 니 다.다음 그림:

asp 2.asp 는 사용자 가 입력 한 이름 이'George Washington'인지 IF 문구 로 판단 하고 이에 상응하는 피드백 을 한다.여기 서 저 희 는 ASP 의 내장 대상 request 를 만 났 습 니 다.request 대상 을 사용 하면 HTTP 로 전달 을 요청 하 는 모든 정 보 를 방문 할 수 있 습 니 다.HTML 표 에서 POST 방법 이나 GET 방법 으로 전달 하 는 매개 변수,쿠키 와 사용자 인증 을 포함 합 니 다.한편,QueryString 집합 검색 HTTP 검색 문자열 의 변수의 값,HTTP 검색 문자열 은 물음표(?)뒤의 값 지정.예:
    http://localhost/if2.asp?Firstname=George&Lastname=Washington
생 성 값 이'Firstname=George&Lastname=Washington'인 변수 이름 문자열 입 니 다.ASP 대상 저자 에 대해 서 는 향후 몇 편 에서 중점적으로 다 룰 예정 이다.
If...Then...Else 문장의 변형 은 여러 조건 에서 선택 할 수 있 습 니 다.즉,ElseIf 자 구 를 추가 하여 If..Then..Else 문 구 를 확장 하 는 기능 을 사용 하여 다양한 가능 한 프로그램 절 차 를 제어 할 수 있 습 니 다.
asp 2.asp 의 프로그램 부분 을 다음 과 같이 확장 합 니 다.<%
  

fname=lcase(request.querystring("Firstname"))
   lname=lcase(request.querystring("Lastname"))
   If fname="george" and lname="washington" then %>
   Hi.You must be the first president!
   < % elseIf fname="ronald" and lname="reagan" then %>
   Hi.You must be the actor president!
   < % elseIf fname="jimmy" and lname="carter" then %>
   Hi.You must be the peanut farmer president!
   < % elseIf fname="naoko" or fname="charles" then %>
   Hi.Your name reminds me of someone,but I am not sure who!
   < % else %>
   Hi!Nice to Meet You
   < % end if %>
여러 가지 선택 을 제공 하기 위해 여러 개의 ElseIf 자 구 를 추가 할 수 있 습 니 다.그러나 여러 개의 ElseIf 자 구 를 사용 하면 프로그램 을 번 거 롭 게 만 들 수 있다.여러 조건 에서 선택 하 는 더 좋 은 방법 은 Select Case 문 구 를 사용 하 는 것 이다.
Select Case 구 조 는 If...Then..ElseIf 구조의 변 칙 형식 을 제공 합 니 다.여러 구문 블록 에서 하 나 를 선택 하여 실행 할 수 있 습 니 다.Select Case 문 구 는 If...Then..Else 문구 와 유사 하지만 코드 를 더욱 세련 되 고 쉽게 읽 을 수 있 습 니 다.Select Case 구 조 는 시작 부분 에서 한 번 만 계산 하 는 간단 한 테스트 표현 식 을 사용 합 니 다.표현 식 의 결 과 는 구조 상의 모든 Case 의 값 과 비교 합 니 다.일치 하면 이 Case 와 연 결 된 구문 블록 을 실행 합 니 다.select Case 구문 으로 asp 2.asp 파일 을 쓸 수 있 습 니 다.
  

< %
   fname=lcase(request.querystring("Firstname"))
   lname=lcase(request.querystring("Lastname"))
   name=fname+lname
   Select case name
   case "georgewashington"
   response.write "Hi.You must be the first president!"
   case "ronaldreagan"
   response.write "Hi.You must be the actor president!"
   case "jimmycarter"
   response.write "Hi.You must be the peanut farmer president!"
   case "naokocharles"
   response.write "Hi.Your name reminds me of someone,but I am not sure who!"
   case else
   response.write "Hi!Nice to Meet You"
   End Select %>
Select Case 구 조 는 시작 부분 에 있 는 표현 식 만 계산 하고 한 번 만 계산 합 니 다.If...Then...ElseIf 구 조 는 ElseIf 문장의 표현 식 을 계산 합 니 다.이 표현 식 들 은 각각 다 를 수 있 습 니 다.따라서 모든 ElseIf 문 구 를 계산 하 는 표현 식 이 같 아야 If...Then...ElseIf 구조 대신 Select Case 구 조 를 사용 할 수 있 습 니 다.Select Case 문 구 는 끼 워 넣 을 수 있 습 니 다.각 층 에 끼 워 넣 은 Select Case 문 구 는 이에 맞 는 End Select 문 구 를 가 져 야 합 니 다.
위 에서 소개 한 스 크 립 트 언어 VBScript 의 함수 와 조건문 사용 방법 은 편폭 때문에 상세 하 게 전개 할 수 없 으 므 로 ASP 에 관심 이 있 는 분 들 은 본문 을 읽 고 어느 정도 독학 과 연습 을 하 시기 바 랍 니 다.

좋은 웹페이지 즐겨찾기