반응형
1. 데이터베이스
데이터베이스란 데이터를 조직적으로 통합하여 구조화시켜 놓은 데이터의 집합체이다.
데이터베이스를 생성하고 검색하며, 추가, 삭제를 원활히 하려는 프로그램의 집합을 데이터베이스 관리 시스템(DBMS : Database Management System) 이라고 한다.

DBMS의 기능
1)데이터 구조 정의
2)데이터 검색 및 갱신
3)데이터 추가 및 삭제
4)복수의 사용자로부터 데이터 처리 동시 실행 제어
5)정보보호

DBMS의 형태중 가장 일반적인 것은 관계형 데이터베이스 관리 시스템(RDBMS : Reation DBMS)이다. 관계형 DBMS 데이터 모델은 테이블의 집합으로 표현되어 있다. 데이터베이스는 한 개 이상의 테이블이 존재한다. 또한 테이블은 여러 개의 레코드로 존재 한다.

테이블의 형식
레코드 : 테이블에 저장된 데이터의 행
필드명 : 항목명
필드 : 테이블에 저장된 데이터의 열


2. SQL SERVER
(1) SQL 질의어
SQL(Structured Query Language)은 데이터베이스를 정의하고 조작하려는 질의어(Query Language)이다.

(2) SELECT 문
테이블에서 레코드를 검색할 때 사용하는 구문

형식>SELECT 필드이름 FROM 테이블이름 [WHERE 조건문]
예>   SELECT name FROM tblMember WHERE num = '4'

(3) INSERT 문
테이블에서 레코드를 삽입할 때 사용하는 구문

형식>INSERT INTO 테이블이름 ( 필드이름 ) VALUES ( '값' )
예>   INSERT INTO tblMember (id, pwd, name) VALUES ('melon', '4444', '김콩쥐')
        INSERT INTO tblMember (age, phone) VALUES ('19', '019-999-9999')

(4) UPDATE 문
테이블에서 레코드를 수정할 때 사용하는 구문

형식>UPDATE 테이블이름 SET 필드이름 = '값' [WHERE 조건문]
예>   UPDATE tblMember SET age = '19'
        UPDATE tblMember SET id = 'grapes', name = '팥쥐' WHERE num = '4'

(5) DELETE 문
테이블에서 레코드를 삭제할 때 사용하는 구문

형식>DELETE FROM 테이블이름 [WHERE 조건문]
예>   DELETE FROM tblMember
        DELETE FROM tblMember WHERE pwd = '4444'

3. ADO
(1) ADO(ActiveX Data Objects)는 DAO(Data Access Objects)나 RDO(Remote Data Objects)보다 데이터베이스 접근 절차를 줄여 프로그래머로 하여금 쉽게 데이터베이스에 접근하여 프로그래밍 할 수 있도록 도와주는 객체 모음이다.

(2) DAO : 관계형 데이터베이스의 구조를 모델화한 객체 클래스의 집합니다. 솜규모의 지역적인 클라인언트/서버 환경에서 데이터베이스 구축이 가능하다.

(3) RDO : SQL Server, Oracle 등을 ODBC를 통해서만 데이터베이스에 접근할 수 있다. 관계형 데이터베이스를 제어하는 객체, 속성, 메소드 등을 지원하며 대규모 관계형 데이터베이스 구축에 사용하기 적합한 방법이다.

(4) ODBC(Open Database Connectivity)

(5)ADO 객체 및 컬렉션
 1) 객체
Connection - 프로그램과 데이터베이스의 연결
Command - SQL 문과 같은 명령을 정의하고 실행
Error - 데이터 접근 실패의 설명
Field - 일반 데이터형을 사용하는 데이터
Parameter - Command 객체와 함께 사용되는 파라미터, 인수 의미
Property - ADO 객체의 특성
Record - 저장된 데이터를 처리
Recordset - 데이터베이스에 대한 명령 실행의 결과 등의 반환 값의 집합
Stream - 전자메일, 웹 페이지와 같은 내용에 접근할 때 사용

 2) 메소드
Errors - 명령에 의해 생성된 오류
Fields - Recordset 객체나 Record 객체의 모든 Field 객체 포함
Parameters - Command 객체의 파라미터 포함
Properties - 객체의 속성 포함

4. Connection 객체
데이터베이스에 연결하여 레코드의 추가, 수정, 삭제 등의 작업을 SQL 문을 사용하여 실행 할 수 있는 객체이다.

(1) Connection 객체
 1) 메소드
BeginTrans - 트랜젝션의 시작
Cancel - 현재 처리중인 실행 작업 중단
Close - 연결과 관련된 객체를 닫음
CommitTrans - 현재 트랜잭션 종료
Execute - 질의문 등을 실행
Open - 데이터 소스에 접근 개시
OpenSchema - 데이터베이스 스키마 정보 반환
RollbackTrans - 현재 트랜잭션의 모든 변경 사항 취소 후 트랜잭션 종료
 2) 속성
Attributes - Connection 객체의 속성 반환
CommandTimeout - 명령 실행 제어 시간
ConnectionString - 데이터베이스 연결 문자열
ConnectionTimeout - 데이터 소스와의 연결 시도 제한 시간
CursorLocation - 커서의 위치 조정
DefaultDatabase - Connection 객체에서의 기본 데이터베이스
Errors - 연결 오류로 인한 Error
IsolationLevel - 트랜잭션의 격리 수준 설정
Mode - 데이터베이스의 데이터 변경에 관한 허용범위 설정
Properties - Connection 객체의 속성 정보 반환
State - 현재 연결 상태 반환
Version - ADO 버전 번호 반환

Connection 객체를 사용하려면 Server 객체의 CreateObject 메소드를 사용하여 객체를 생성해야 한다.

형식> Set 객체 = Server.CreateObject("ADODB.Connection")
예>    Set ConnDB = Server.CreateObject("ADODB.Connection")
         Set objCon = Server.CreateObject("ADODB.Connection")

객체를 생성한 후에는 데이터베이스에 연결하는 작업을 해야 한다. 데이터베이스 연결은 Open 메소드와 데이터베이스 정보를 이용하여 이루어진다.

ODBC 연결방식일 때

형식> 객체.Open DSN|연결문자열 = 경로명 [, 아이디, 비밀번호 ]
예>    ConnDB.Open "DSN=dbMember;UID=member;PWD=1;"
         objCon.Open "Driver={SQL Server}; Server=myserver;
                             Database=dbMember;UID=member;PWD=1;"

OLE DB 연결방식일 때

형식> 객체.ConntionString="Provider = OLE DB 데이터 공급자;
                Data Source = 서버; Initial Catalog = 데이터베이스;
                User ID = 아이디; Password = 비밀번호"
예>    ConnDB.ConntionString="Provider = SQLOLEDB;
                Data Source = (localhost); Initial Catalog = tblMember;
                User ID = member; password = 1;

Connection 객체를 사용하여 연결하고 어떠한 작업을 마친 후에는 데이터베이스와의 연결을 종료하고 객체의 리소스를 해제해야 한다.

Connection 객체의 연결 종료와 리소스 해제의 형식

형식> 객체.Close
         Set 객체 = Nothing
예>    ConnDB.Close
         Set ConnDB = Nothing

'공부 > ASP' 카테고리의 다른 글

Server 컴포넌트  (0) 2011.06.14
Application, Session, Server 객체  (0) 2011.06.13
객체의 구성요소  (0) 2011.06.10
Request, Response 객체  (0) 2011.06.10
Command 객체  (0) 2011.06.10
반응형
1.Server 컴포넌트
ASP에서는 프로그래머들이 구현하기 힘든 기능이나 구현할 수 없는 기능들을 이미 컴포넌트로 제작해 지원하고 있다. 이런 컴포넌트들을 간단히 가져다 쓰기만 하면 되는것이다.

형식> Set 변수명 = Server.Createobject("ProgID")
예>    Set AD = Server.CreateObject("MSWC.AdRotator")
         Set BCheck = Server.CreateObject("MSWC.BrowserType")

표준 컴포넌트
ADO - 데이터베이스 처리
Ad Rotator - 동적 광고 표현
Browser Capability - 브라우저의 특성과 정보 출력
CDO(Collaboration Data Object) - 메일 관련 기능 처리
Content Linking - 페이지 연결

(1) Ad Rotator 컴포넌트
광고들은 사용자가 접속 할 때 마다 랜덤하게 출력한다.
Ad Rotator 컴포넌트를 사용하는 ProgID는 MSWC.AdRotator로 설정

메소드
GetAdvertisement - 스케일 파일을 읽은 후 HTML 페이지에 출력할 광고 이미지 리턴

속성
Border - 광고 경계의 폭
Clickable - 광고가 하이퍼링크인지 정의
TargetFrame - 광고를 디스플레이할 프레임 이름

디스플레이할 광고를 결정하려면 스케줄러 파일을 작성해야 한다. 이러한 스케줄러 파일에는 디스플레이할 광고들이 목록으로 저장되어 있으며 이 데이터들이 어떠한 형식으로 저장되어 있는지를 알아야 Ad Rotator 컴포넌트를 제대로 활용할 수 있다.

매개변수
adURL - 광고 이미지 파일 위치 지정
adHomePageURL - 광고주 홈페이지 지정
Border(이미지 경계 두께) - 광고 이미지 경계 두깨
Height(이미지 높이) - 광고 이미지 높이 지정
Impressions - 광고를 디스플레이할 빈도수
Redirect(URL) - 이동할 파일이나 위치 지정
Text - 이미지를 디스플레이 할 수 없을 때 보여줄 문자열
Width(이미지 넓이) - 광고 이미지 넓이 지정
* - 세션 분리자


(2) Browser CapaBility 컴포넌트
현재 각 사용자들이 사용하는 브라우저의 정보를 알 수 있는 기능을 한다. 이러한 정보를 제공함으로써 프로그래머들은 사용자들의 브라우저에 맞는 페이지를 전송해 줄 수 있다.

Browser CapaBility 컴포넌트를 사용하는 ProgID는 MSWC.BrowerTyper로 설정한다.
Browser CApability 컴포넌트는 Brower.dll 파일과 Browscap.ini 라는 텍스트 파일로 구성되어있다. Browscap.ini 파일은 각 부라우저의 정보를 가지고 있다. 이 파일에 새로운정보를 추가하고 변경함으로써 쉽게 수정할 수 있다.

(3) Content Linking 컴포넌트
사용자들이 어떠한 웹 페이지에 접속하여 어떤 내용을 클릭했을 때에 링크되어 있는 페이지가 어디에 위치해 이ㅏㅆ는지 알려주는 역할을 하며 페이지들의 정보는 텍스트 파일로 저장되어 관리된다. 이 컴포넌트는 웹 사이트의 페이지 분량이 많고 정기적인 페이지를 보여주는 사이트에 유용하다.

Content Linking 컴포넌트를 사용하는 ProgID는 MSWC.NextLink로 성정

메소드
GetListCount - 리스트 파일에 있는 전체 라인의 수 리턴
GetListIndex - 리스트 파일에 있는 현재 화면의 리스트 위치 리턴
GetNextURL - 리스트 파일에 있는 다음 페이지의 URL 리턴
GetNextDescription - 리스트 파일에 있는 다음 페이지의 설명 리턴
GetNthURL - 리스트 파일에 있는 N번째 라인의 URL 리턴
GetNthDescription - 리스트 파일에 있는 N번째 라인의 설명 리턴
GetPreviousDescription - 리스트 파일에 있는 이전 페이지의 URL 리턴
GetPreviousURL - 리스트 파일에 있는 이전 페이지의 설명 리턴

형식> 위치(URL)<TAB>설명<TAB>주석<TAB>
예>    Login.asp        로그인 페이지        초기화면
         AdRotator.asp  Ad Rotator Component

'공부 > ASP' 카테고리의 다른 글

데이터베이스와 ADO 객체 활용  (0) 2011.06.15
Application, Session, Server 객체  (0) 2011.06.13
객체의 구성요소  (0) 2011.06.10
Request, Response 객체  (0) 2011.06.10
Command 객체  (0) 2011.06.10
반응형
1. Application 객체
Application 객체는 사이트 전체를 통해 모든 사용자가 정보를 공유할 때 사용하는 ASP의 내장 객체이다.

형식> Application.("변수") = 값
예>    Application("Name") = "홍길동"
         Application("Age") = "17세"

(1) Contents 컬렉션
Application 객체에 저장된 항목의 값은 Contents 컬렉션을 사용하여 접근할 수 있다.

형식> Application.Contents (항목명 | 항목번호)
예>    Application.Contents (intInfo)
         Application.Contents (5)

(2) Contents.Remove 메소드, Contents.RemoveAll 메소드
Remove 메소드는 Application Contents 컬렉션의 지정된 항목을 삭제할 때 사용한다.

형식> Application.Contents.Remove ("항목명" | 항목번호)
예 >   Application.Contents.Remove (5)
         Application.Contects.RemoveAll ()

(3) Lock 메소드, UnLock 메소드
Application 객체는 모든 사람이 함께 정보를 공유하므로 여러 사람이 항목에 동시에 접근하여 수정하려 한다면 의도하지 않은 문제가 발생할 것이다. 이러한 문제를 방지하려고 Lock 메소드와 UnLock 메소드를 사용한다. 즉, 여러 사람이 같은 항목에 접근하여 수정할 때에는 문제가 발생할 위치에 Lock 메소드를 사용하여 Application 객체를 잠그고 UnLock 메소드를 사용하여 다시 잠금 상태를 해제한다.

형식> Application.Lock
         Application.UnLock


2. Sesson 객체
Application 객체가 모든 사용자가 정보를 공유할 수 있도록 하는 역할을 한다면 Session 객체는 개별 사용자에게 정보를 공유하는 역할을 한다. 즉, 웹 사이트와 사용자간의 연결 상태를 관리하고 각 사용자마다 다른 환경의 서비스를 제공이 가능하도록 하는 역할을 한다.

형식> Session.("변수") = 값 | 객체
예>    Session.("totalCounter") = 0

(1) Contents 컬렉션
Application 객체의 Contents 컬렉션과 같이 Session 객체에 저장된 항목의 값은 Contents 컬렉션을 사용하여 접근할 수 있다.

형식> Session.Contents ("항목명" | 항목번호)
예>    Session.Contents ("name")
         Session.Contents (5)

(2) Abandon 메소드
Abandon 메소드는 Session 객체에 저장된 항목을 삭제하는 역할을 한다.

형식> Session.Abandon

(3) Contents.Remove 메소드, Contents.RemoveAll 메소드
Remove 메소드는 Session Contents 컬렉션의 지정된 항목을 삭제할 때 사용한다.

형식> Session.Contents.Remove (항목명 | 항목 번호)
예>    Session.Contents.Remove ("Email")
         Session.Contents.Remove (5)
         Session.Contents.RemoveAll ()

(4) SessionID 속성
사용자가 서버에 ASP 페이지를 처음 요청할 때에는 SessionID 속성을 사용하여 SessionID라는 고유한 숫자를 생성하여 쿠키로 저장한다. 이 쿠키로 인하여 서버는 각 사용자를 판별할 수 있다. 또한 이때 생성된 SessionID를 사용하여 서버는 사용자를 추적할 수 있다.

형식> Session.SessionID

(5) Timeout 속성
Timeout 속성은 Session 객체의 제한 시간을 지정할 때 사용하는 속성이다. 지정한 시간 동안 사용자가 페이지를 요청하지 않으면 세션은 종료된다.

형식> Session.Timeout [=시간(분)]
예>    Session.Timeout = 10

3. Server 객체
Server 객체는 서버의 속성과 메소드에 접근할 수 있도록 해주는 역할을 한다. Server 객체를 이용함으로써 사이트 개발과 관리가 수월해질 수 있다.

형식>Server.속성 | 메소드
예>   Server.ScriptTimeout = 10
        Server.Transfer ("Login.htm")

(1) ScriptTimeout 속성
ScriptTimeout 속성은 서버에서의 스크립트 실행 시간을 지정하는 역할을 한다. 다음 형식에서 보는 바와 같이 최대 시간을 초로 지정하여 사용한다.

형식>Server.ScriptTimeout = 시간(초)
예>   Server.ScriptTimeout = 10
        Server.ScriptTimeout = 20

(2) Execute 메소드
Execute 메소드는 지정한 경로의 페이지를 현재 페이지에 삽입하는 역할을 한다. 즉 지정한 경로의 ASP 파일을 처리한 후 처리된 결과 값을 다시 전송받는 것이다.

형식>Server.Execute ("경로")
예>   Server.Execute ("Execute2.asp")
        Server.Execute ("Login.htm")

(3) HTMLEncode 메소드
HTMLEncode 메소드는 HTML 태그를 브라우저에서 볼 수 있도록 하는 역할을 한다.

형식> Session.HTMLEncode ("문자열")

(4) MapPath 메소드
MapPath 메소드는 해당 파일이나 디렉토리의 물리적인 경로를 획득해야 할 때에 사용한다. 상대 경로나 가상 경로 모두 실제 경로로 매핑이 가능하다.

형식>Server.MapPath ("경로")
예>   Server.MapPath (".")

(5) Transter 메소드
Transfer 메소드는 Response 객체의 Redirect 메소드와 마찬가지로 지정한 경로의 ASP 파일로 이동하는 역할을 하는 메소드이다. 즉 다른 ASP 웹 페이지를 첨부하여 경로를 지정한 웹 페이지의 일부인 것처럼 실행시키는 역할을 한다.

형식>Server.Transfer ("경로")
예>   Server.Transfer ("Login.htm")
        Server.Transfer ("Transfer1.asp")

'공부 > ASP' 카테고리의 다른 글

데이터베이스와 ADO 객체 활용  (0) 2011.06.15
Server 컴포넌트  (0) 2011.06.14
객체의 구성요소  (0) 2011.06.10
Request, Response 객체  (0) 2011.06.10
Command 객체  (0) 2011.06.10
반응형
객체의 구성요소
- 컬렉션. 속성. 메서드. 이벤트

컬렉션 : 배열과 유사한 형태의 정보로서'키'와 '값' 의 쌍으로 구성되는 형태
속성 : 객체가 가지는 특성으로 내부 변수 형태로 설명할수 있다.
메서드 : 객체가 가지는 실행 함수
이벤트 : 객체에서 발생할 수 있는 사건

'공부 > ASP' 카테고리의 다른 글

Server 컴포넌트  (0) 2011.06.14
Application, Session, Server 객체  (0) 2011.06.13
Request, Response 객체  (0) 2011.06.10
Command 객체  (0) 2011.06.10
Recordset 객체  (0) 2011.06.08
반응형
1. Request 객체
클라이언트에서 어떤 페이지를 요청하면 서버로 요청 정보를 전송하는데, 이렇게 전송된 데이터가 저장되는 곳이 바로 Request 객체이다. 사용자가 브라우저를 통해 서버에게 어떤 요구를 하면 Request 객체는 이때 사용자의 브라우저 정보나 입력한 값 등의 정보를 갖게 된다.

사용형식>
Request.[컬렉션 | 속성 | 메소드]("변수")

예) Request.QueryString("strID")
     Request.Cookies("Login")
     Request.ServerVariables("SERVER_NAME")

(1) ClientCertificate 컬렉션 - 클라이언트가 전송한 인증서
사용자의 인증을 위한 디지털 인증정보의 내용을 조사한다. 그다지 많이 쓰이지 않는 컬렉션이다.

형식> Request.ClientCertificate (키)
예>    Request.ClientCertificate (member)

(2) Cookies 컬렉션 - 클라이언트가 전송한 쿠키값
쿠키는 사용자의 시스템에 간단한 정보를 저장하여 필요할 때마다 해당 정보를 읽어오려고 한다.
(쿠키를 사용하는 주된 원인은 간단한 정보를 클라이언트에 저장함으로써 서버의 부하를 크게 줄일 수 있다.)

형식> Request.Cookies (쿠키변수) [(하위쿠키 변수) | .속성 ]
예> Request.Cookies (strLog)
      Request.Cookies (strLog) (strSubLog)

(3) From 컬렉션 - 클라이언트가 전송한 폼 요소
서버로 데이터를 전달하는 방법은 get, post 두 가지 방식이 있다. get 방식은 QueryString 컬렉션이 해당 데이터를 받고 post 방식은 Form 컬렉션이 해당 데이터를 받는다.

전달할 데이터를 입력하려고 <Form> 태그를 다음과 같이 사용한다.
<Form Method = "post" Action = "웹페이지" >
태그를 해석하면 사용자가 서버로 전달하고자 입력한 데이터를 post 방식으로 전송하고 지정한 웹페이지에서 데이터를 처리한다는 것을 뜻한다. 처리된 데이터는 Form 컬렉션에 저장되는데 이러한 값을 읽으려면 Form 컬렉션을 사용해야 한다.

형식> Request.Form (변수)
예>    Request.Form ("strID")
         Request.Form ("strPWD")

<Form>태그는 사용자가 입력한 값을 전달하는 역할을 한다.

형식> <Form Method="전송방식" Action="값을 전달 받을 URL" Enctype = "인코딩할 폼 데이터의 타입 지정" Target = "출력될 창의 이름" >

<INPUT>태그는 입력받을 곳을 생성한다.

형식><INPUT Type = "입력형태" name = "이름" Value = "값">


(4) QueryString 컬렉션 - HTTP 질의 문자열에 있는 변수 값
Form 컬렉션이 post 방식으로 전송된 데이터를 저장하는 것이라면 QueryString 컬렉션은 get 방식으로 전송한 데이터를 저장하는 역할을 한다. 그러므로 Form 컬렉션과 QueryString 컬렉션의 사용법은 비슷하다.

형식>Request.QueryString (변수)
예>   Request.QueryString("strID")
        Request.QueryString("strPWD")

입력폼 만들기
형식><Form Method = "get" Action = "웹페이지">

<INPUT>태그는 post 방식과 동일


(5) ServerVariables 컬렉션 - HTTP와 환경 변수 값
ServerVariables 컬렉션에 기본적인 사용자가 서버로 전송한 정보들이 저장되어 있다.
형식> Request.ServerVariables (서버환경변수)
예>    Request.ServerVariables (strKey)
         Request.ServerVariables ("HTTP_USER_AGENT")

(6) TotalByte 속성 - 클라이언트가 전송한 총 바이트 수
사용형식> Request.TotalBytes


2. Response 객체
사용자가 어떤 요청을 하였을 때 서버가 이에 응답을 보내려고 Response 객체를 사용한다.

형식>Response.[컬렉션 | 속성 | 메소드]
예>   Response.Redirect "From.htm"
        Response.Cookies ("MemberInfo")
        Response.Write "HELLOASP"

(1) Cookies 컬렉션 - 보내지는 쿠기값
Response 객체에서는 Cookies 컬렉션을 사용하여 해당 값을 기억하려고 사용한다.

형식>Resposne.Cookies(쿠키 변수)[(하위 쿠키 변수) | .속성] = 쿠키 값
예>   Response.Cookies("MemberInfo")("strName") = "홍길동"
        Response.Cookies("MemberInfo").Expires = "May 5, 2006"

(2) Buffer 속성 - ASP의 결과가 완성될 때까지 캐시 할 것인지를 지정
Buffer 속성은 버퍼에 저장할 것인지 안 할 것 인지를 지정하는 속성
Buffer의 값을 'TRUE'로 값을 지정할 때에는 사용자가 요청한 결과를 처리할 때 해당 페이지가 완성될 때까지 또는 Flush나 End 메소드가 호출될 때 까지 해당 결과를 전송하지 않는다. 'FALSE'로 값을 지정할 때에는 결과 페이지를 저장하지 않고 즉시 클라이언트로 전송한다.

(3) CacheControl 속성 - Content Type 헤더에 문자 집합 이름 추가
서버와 사용자 사이에는 페이지 응답 시간을 단축시키려고 해당 웹 페이지를 캐시ㅣ하도록 구성되는 프록시 서버가 있다. 이러한 프록시 서버가 ASP의 결과를 캐시할 것인지에 대한 지정하는 속성이다.

형식>Response.CacheControl [=Cache Control Header]

(4) ContentType 속성 - HTTP 컨텐츠 형식 지정
서버가 사용자에게 파일을 보낼때에 해당 파일의 타입을 지정한다. 이렇게 콘텐츠 형식을 지정함으로써 사용자의 브라우저에 자체적으로 출력할 것인지 아니면 다른 응용 프로그램을 호출할 것인지를 결정하게 된다.
기본 값은 'text/html' 이다.

형식>Response.ContentType [=콘텐츠 형식]
예>   Response.ContentType = "image/GIF"
        Response.ContentType = "image/JPEG"

(5) Expires 속성 - 캐시된 페이지의 만료기간 지정
브라우저에 캐시된 페이지의 만료 기간을 지정하는 역할을 한다. 페이지가 만료되기 전에 같은 페이지가 호출되면 캐시된 페이지가 출력된다.

형식>Response.Expires = "May 5, 2006"
예>   Response.Expires = 0

일반적으로 Expires의 값에는 날짜를 적어주지만 0이나 -1 등을 사용해서도 값을 지정할 수 있다. 만약에 해당 값을 0으로 지정하면 브라우저에서 ASP 페이지가 캐싱하지 못하게 되며 -1 등의 음수로 값을 지정했을 때에는 응답이 즉시 만료가 된다.

(6) ExpiresAbsolute 속성 - 캐시된 페이지의 만료 날짜와 시간 지정
브라우저에 캐시된 페이지의 만료 기간을 지정하는 역할을 한다. 하지만 차이점이 있다면 Expiresabsolute 속성은 날짜 이외에 시간까지 지정할 수 있다.

형식>Response.ExpiresAbsolute [= [날짜] [시간] ]
예>   Response.ExpiresAbsolute =#May 5, 2006 12:30:30#

날짜형식은 #과 # 사이에 값을 넣어 나타낸다.

(7) IsClientConnected 속성
클라이언트와 서버가 연결되었는지 아니면 끊었는지를 알려주는 속성이다.

형식>Response.IsClientConnected()

(8) Redirect 메소드
사용자가 서버에 웹 페이지를 요청하면 일반적으로 해당 웹 페이지를 전송한다. 하지만 Redirect 메소드를 사용하면 웹페이지 대신 지정한 URL로 이동시킬 수 있다.

형식>Response.Redirect URL
예>   Response.Redirect "Login.htm"
        Response.Redirect "Form.htm"

'공부 > ASP' 카테고리의 다른 글

Application, Session, Server 객체  (0) 2011.06.13
객체의 구성요소  (0) 2011.06.10
Command 객체  (0) 2011.06.10
Recordset 객체  (0) 2011.06.08
Connection 객체  (0) 2011.06.07
반응형
1. Command 객체의 속성과 메서드
(1)Command 객체의 속성
ActiveConnection - 데이터베이스 연결을 위한 Connection 객체 또는 DSN을 가리킴
CommmandText - 실행 될 명령어나 쿼리
Command Type - 명령어 타입
Prepared - TRUE면 명령어 실행 전에 미리 컴파일 되도록 지정

(2)Command 객체의 메서드
CreateParameter - 새로운 Paremeter 객체를 만듦
Execute - CommandText에 있는 명령어를 실행시킴

2. Command 객체의 생성 및 명령의 실행
(1) 객체생성
예문)
Set cm = Server.Createobject("ADODB.Command")

(2) 명령의 실행
예문)
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
             "Data Source=" & Server.MapPath(".") & "\Db\memberdb.mdb;"
Set cm = Server.CreateObject("ADODB.Command")
cm.ActiveConnection = cn
cm.CommandText = "delete from member where id = 'fatfox'
cm.execute

ActiveConnection 속성 값은 이미 연결된 Connection 객체변수명인 cn을 써 주면 된다. 지금 여기서는 CommandText를 보면 id가 'fatfox'인 레코드를 삭제하려고 하고 있다. 이렇게 Command 객체로 명령의 실행은 Command 객체의 속성을 먼저 지정한 다음 execute 메서드를 이용하여 명령을 보내게 된다.

3. Command 객체를 이용한 매개 변수 쿼리 실행
인수를 넘기는 저장 프로시저나 매개 변수 값을 넘기는 매개 변수를 포함한 쿼리의 경우 Command 객체로만 실행 할 수 있다.

가령 2개의 인수를 받아 들이는 쿼리 StoredProc1이 있고, 그 쿼리에 2개의 인수 값을 각각 100과 200으로 줄려면 다음과 같이 하면 된다.
cm.CommandText = "StoredProc1"
cm.Execute affectedcnt, array(100,200)
첫번째 인수 affectedcnt는 영향을 받은 레코드 수를 리턴 받기 위한 변수이고, 두 번째 인수인 array()를 이용하여 인수 값을 넘기게 된다.




'공부 > ASP' 카테고리의 다른 글

객체의 구성요소  (0) 2011.06.10
Request, Response 객체  (0) 2011.06.10
Recordset 객체  (0) 2011.06.08
Connection 객체  (0) 2011.06.07
ADO 컴포넌트와 ODBC/OLE DB  (0) 2011.06.03
반응형
1. Recordset 객체의 속성과 메서드

(1)Recordset 객체의 속성
AbsolutePage - 현재 레코드가 위치한/할 절대 페이지
AbsolutePosition - 현재 레코드의 순서 위치
ActiveConnection - 현재 레코드 객체가 속해 있는 Connection 객체
BOF - 레코드 셋에서 첫 레코드 이전을 가리키면 TRUE
CursorType - 레코드 셋에 적용되는 커서 타입
EOF - 레코드 셋에서 끝 레코드 다음을 가리키면 TRUE
LockType - 레코드 셋에 적용되는 락 타입
PageCount - 레코드 셋의 총 페이지수
PageSize - 한 페이지를 구성하는 레코드 수
RecordCount - 레코드 셋의 총 레코드 수

(2)Recordset 객체의 메서드
AddNew - 추가를 위해 새 레코드를 하나 만듦
Close - Open 되었던 Recordset 객체 변수를 닫음
Move - 레코드 셋에서 레코드 포인터를 옮김
MoveFirst - 레코드 셋에서 레코드 포인터를 처음으로 옮김
MoveLast - 레코드 셋에서 레코드 포인터를 마지막으로 옮김
MoveNext - 레코드 셋에서 레코드 포인터를 다음 레코드로 옮김
MovePrevious - 레코드 셋에서 레코드 포인터를 이전 레코드로 옮김
Open - 쿼리를 실행하고 레코드 셋을 가져옴
Supports - 레코드 셋에서 어떤 함수가 지원되는지 체크함
Update - 현재 레코드에서 변견된 내용을 저장함


2. Recordset 객체의 생성 및 열기
Recordset 객체의 생성

Set rs = Server.CreateObject("ADODB.Recordset")

rs는 임의로 지정할 수 있는 객체변수, 객체변수에 값을 할당할 때 객체변수명 앞에 Set이란 접두어가 온다.

Recordset 객체를 생성하지 않고 사용되는 예

Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
             "Data Source=" & Server.MapPath(".") & "\Db\memberdb.mdb;"
Set rs = cn.execute("select * from member")

여기서는 객체가 생성되지 않고 리턴되는 레코드 집합이 할당되고 있다. 이 때는 내부적으로 Recordset객체가 디폴트 형식으로 생성되고 있는 것이다.


3. 레코드 사이의 이동
다음의 메서드들이 레코드사이의 이동을 가능하게 하는 Recordset 객체의 메서드들이다.
Move - 레코드 포인터를 상대적으로 옮김
예) rs.Move 2 - 레코드를 현재 포인터에서 2 증가
Movenext - 레코드 포인터를 다음 레코드로 옮김
MovePrevious - 레코드 포인터를 이전 레코드로 옮김
MoveFirst - 레코드 포인터를 처음 레코드로 옮김
MoveLast - 레코드 포인터를 마지막 레코드로 옮김

4. BOF(Biginning Of File)와 EOF(End Of File) 속성
BOF는 처음 레코드를 가리키고 있을 때 TURE가 되는 것이 아니라 레코드 포인터가 처음 레코드의 이전을 가리킬 때 TRUE가 되는 속성이다. 마찬가지로 EOF는 마지막 레코드를 가리키고 있을 때 TRUE가 되는 것이 아니라 레코드 포인터가 마지막 레코드의 다음을 가리킬 때 TRUE가 되는 속성이다.
즉, 존재하지 않는 레코드를 가리키게 될 때 TRUE가 되는 속성이다.

5. Recordset 객체의 Fields 컬렉션
사용법
rs.fields.item("필드명") 또는 rs.fields("필드명") 또는 rs("필드명") 처럼 사용한다.

다른방법으로는 필드명을 모를 때 인덱스를 사용하여 필드를 가리키는 것으로 첫 번째 필드는 인덱스 '0'이다.

rs.fields.item(0) 또는 rs.fields(0) 또는 rs(0) 처럼 사용할 수 있다.

필드의 개수는 fields 컬렉션의 count 속성으로 알 수 있다.
rs.fields.count

6. 페이지 단위로 레코드 집합을 보기
 Recordset 객체는 페이징 기법을 제공하는데 이와 관련된 몇가지 속성들을 살펴보면 다음과 같다.
pagesize - 한 페이지를 구성하는 레코드의 개수
absolutepage - 현재의 레코드가 위치한 페이지 포인터(첫 페이지는 1페이지) 또는 디스클레이할 페이지 포인터
pagecount - 레코드 집합의 전체 페이지 수

pagesize를 결정한다. 그리고 absolutepage로써 디스플레이 할 페이지를 결정한다. absolutepage 값은 각 페이지의 디스플레이 말미에 있는 form에서 넘어오는 값으로 계산한다.
form에서는 2가지 값이 넘어 오는데, hidden 타입으로 넘어 오는 바로 전에 보였던 페이지 번호와 submit 타입으로 넘어 오는 사용자 요구에 의해 선택되는 '다음페이지' 혹은 '이전페이지' 중 어느 것을 클릭하였는가에 따라 넘어 오는 방향을 나타내는 값, 이렇게 2 가지 값에 의해 absolutepage 값이 결정된다.


7. Recordset의 커서 타입(Cursor Type)
커서타입 상수값  커서 이동  다른 사용자의 레코드 수정  다른 사용자의 레코드 추가   다른 사용자의 레코드 삭제  특징
 ForwardOnly  0 전진만 가능  보이지 않음  보이지 않음  보이지 않음   속도가 가장 빠름(디폴트 타입)
 keyset  1  양방향가능  보임  보이지 않음  보이지 않음  
 Dynamic 양방향가능   보임  보임  보임  속도가 가장 느림
 static  3  양방향가능  보이지 않음  보이지 않음  보이지 않음  

예) Static으로 커서 타입을 지정하는 경우라면
Set rs = Server.Createobject("ADODB.Recordset")
Rs.Open "select * from member", cn, 3

또는

Set rs = Server.CreateObject("ADODB.Recordset")
Rs.source = "select * from member"
Rs.ActiveConnection = cn
Rs.CursorType = 3
Rs.open

또 한가지 방법은 미리 상수를 define 한 뒤 그 상수 이름을 사용하는 방법이다.

const adOpenStatic = 3
Set rs = Server.Createobject("ADODB.Recordset")
Rs.Open "select * from member", cn, addOpenStatic


8. Recordset 객체를 이용한 레코드 수정, 추가, 삭제
Connection 객체를 생성한 뒤, Connection 객체의 execute 메서드에 sql쿼리를 보낼 수 있기에, update, insert, delete 쿼리를 실행 함으로써 레코드에 대해 작업을 해 왔다. 반면 Recordset 객체의 메서드를 이용하여 레코드에 대해 수정, 추가, 삭제가 가능하다. Recordset 객체에서 제공하는 이와 같은 관련 메서드에는 다음과 같은 것들이 있다.

supports - 어떤 메서드가 지원되는지 여부를 검사, 지원되면 TURE
update - 현재 레코드에 대해 변경한 내용을 모두 저장
addnew - 새로운 레코드 추가 생성
delete - 현재 레코드 포인터가 가리키는 레코드 삭제

Supports는 어떤 메서드가 현재 open된 객체에서 지원되는지 여부를 검사하는 메서드로서, 지원되면 TRUE를 리턴한다.
사용예)
if rs.supports(update) then
   rs("ID") = "aaa"
   rs("passwd") = "1234"
   rs.update
end if

Update 메서드는 현재 레코드에 대해 변경한 내용을 모두 저장하는 메서드
사용예)
   rs("name") = "홍길동"
   rs("age") = 150
   rs.update


Addnew 메서드는 새로운 레코드를 추가 생성할 때 사용하는 메서드로서 Addnew 메서드가 호출되면 update 가능한 빈 레코드 하나 생성되는 셈이다. 레코드의 각 필드를 채운 후 update 메서드를 호출해야 데이터베이스에 저장이 완료된다.
사용예)
rs.addnew
rs("ID") = "fatfox"
rs("name") = "이주형"
rs("age") = 7
rs.update

Delete 메서드는 현재 레코드 포인터가 가리키는 레코드를 삭제하는 메서드로서 레코드 집합 전체가 지워지는 것은 아니고 현재 커서가 가리키는 레코드만 삭제 된다는 점을 유의!!

rs.delete

'공부 > ASP' 카테고리의 다른 글

Request, Response 객체  (0) 2011.06.10
Command 객체  (0) 2011.06.10
Connection 객체  (0) 2011.06.07
ADO 컴포넌트와 ODBC/OLE DB  (0) 2011.06.03
SQL 기초  (0) 2011.06.01
반응형
1. Connection 객체의 속성과 메서드

Connection 객체의 속성
CommandTimeout - 명령실행 후 에러 리턴까지 기다리는 초
ConnectionString - 데이터 소스 연결을 위한 정보를 담는 문자열
ConnectionTimeout - 연결시도 후 에러 리턴까지 기다리는 초

Connection 객체의 메서드
Open     - 데이터 소스에 연결함
Close    - 연결된 Connection 객체를 닫음
Execute - 쿼리나 명령 등을 실행
BeginTians - 새로운 트랜잭션을 시작함
CommitTians - 수정내용을 저장함
RollbackTrans - 수정내용을 취소

2. 데이터 베이스와의 연결

(1) ODBC를 이용한 연결
Connection 객체의 생성
Set cn = Server.CreateObject("ADODB.Connection")

Access의 경우 (DNS은 'member', SQL Server의 DSN은 'membersql')

cn.open "DSNname"

또는

cn.open "DSN=member"

SQL SERVER의 경우는 (계정 id는 testq 암호는 1234 를 가정)

cn.open "membersql", "testq", "1234"

또는

cn.open "DSN=member;UID=testq;PWD=1234"


2. OLE DB를 이용한 연결
OLE DB는 ODBC에 비해 속도가 빠르고 ODBC에 비해 많은 종류의 데이터 액세스를 지원하므로 대부분의 데이터베이스 접속에 널리 사용된다.

(1)Access의 경우
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
             "Data Source=somefolder\xxxx.mdb;"


(2)SQL Server의 경우 OLE DB를 이용한 연결
SQL Server의 경우(SQL Server 이름은 coolnet, 사용할 데이터베이스 이름은 'memberdb', 계정 id는 'testq', 암호는 '1234'를 가정)

cn.Open "Provider=sqloledb;" & _
             "Data Source=coolnet;" & _
             "Initial Catalog=memberdb;" & _
             "User Id=testq;" & _
             "Password=1234"

또는

cn.Open "Provider=sqloledb;" & _
             "Server=coolnet;" & _
             "Database=memberdb;" & _
             "User Id=testq;" & _
             "Password=1234"


서버가 원격에 있다면 서버이름으로는 전체이름이나 IP 주소를 써 주면 된다.
(서버의 주소가 coolnet.dongyang.ac.kr)

cn.Open "Provider=sqloledb;" & _
             "Data Source=coolnet.dongyang.ac.kr;" & _

처럼 서버의 풀네임을 써주든지

cn.Open "Provider=sqloledb;" & _
             "Data Source=203.204.205.7;" & _

처럼 서버이름에 IP 주소를 쓰면 된다.


3. Connection 객체를 이용한 실행 쿼리의 실행

(1)Insert 쿼리의 실행
예문>
'객체 생성 및 DB와의 연결
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & Server.MapPath(".") & "\Db\memberdb.mdb;"

SQL = "insert into 테이블명"
SQL = SQL & " (필드명1, 필드명2, ....)"
SQL = SQL & " values ('필드값1', '필드값2', ......)"

'쿼리실행
cn.execute SQL


(2)update 쿼리의 실행
예문>
SQL = "update 테이블명 set 필드명1 = 필드값1, 필드명2 = 필드값2 where 조건필드명 = '조건값'"

cn.execute SQL


(3)delete 쿼리의 실행
예문>
SQL = "delete from 테이블명 where 조건필드명 = '조건값'"

cn.execute SQL


(4) 쿼리에 의해 영향 받은 레코드 수 알아내기
예문>
SQL = "delete from member where age >= 200"
cn.execute SQL, RecordsAffected
response.write RecordAffected & "개의 레코드가 삭제되었습니다."

RecordsAffected라는 변수에 삭제된 레코드의 갯수가 들어 있게 된다. RecordsAffected라는 이름은 설명을 위해서 일부러 길게 변수 이름을 쓴 것이니 임의로 쓰면 된다.


4. Connection 객체의 Errors 컬렉션
Errors 컬렉션이 가지고 있는 속성
Count : Errors 컬렉션 내에 있는 error 객체의 숫자를 나타낸다.
Item : 숫자나 이름으로 특정한 error 객체를 리턴한다.
예문> cn.errors.item(0)

Error 컬렉션이 가지고 있는 메서드
Clear : Errors 컬렉션에 있는 모든 error 객체를 지운다.
Refresh : 컬렉션 내의 객체들을 update 한다.

Error 객체가 가지고 있는 속성
Description : 오류에 대한 설명 문자열
Number : 오류상수에 해당하는 Long 타입의 정수
Source : 오류를 발생시킨 객체







'공부 > ASP' 카테고리의 다른 글

Command 객체  (0) 2011.06.10
Recordset 객체  (0) 2011.06.08
ADO 컴포넌트와 ODBC/OLE DB  (0) 2011.06.03
SQL 기초  (0) 2011.06.01
실습 - HTML 웹 문서에서 VBScript를 사용하여 웹 페이지를 작성해 본다.  (0) 2011.05.31
반응형
1. ADO 개요
ADO는 ActiveX Data Object의 줄임말로 Microsoft사에서 개발한 데이터베이스 연동용 인터페이스라고 할 수 있겠다. 이 ADO 컴포넌트를 사용하여 데이터베이스에 접근하여 여러 작업을 하게 된다.

ADO 컴포넌트를 이용하여 할 수 있는 기본 과정
1) 데이터 베이스 연결 : 데이터베이스를 사용하려면 먼저 사용하고자 하는 데이터베이스에 연결을 해야 한다. ODBC설정을 통하여 데이터원본이름을 가지고 데이터베이스에 연결하거나 OLE DB를 이용하여 데이터베이스에 연결하게 된다.
2) 명령 실행 : 데이터 베이스에 연결이 되면 명령을 보내어 실행하게 된다.
3) 실행 결과 : 보내어진 명령의 결과를 가지고 여러 가지 처리를 할 수 있다.

2. ODBC 소개
ODBC(Open DataBase Connectivity)를 간단히 설명하면 ODBC 응용프로그램과 데이터베이스 프로그램 사이에 위치하면서 응용프로그램의 명령을 데이터베이스 프로그램으로 전달하게 되는데 이 때 데이터 베이스 프로그램의 종류에 따라 다르게 코딩할 필요가 없게끔 만들어진 표준화된 인터페이스라고 할 수 있다.


3. OLE DB 소개
OLE DB는 Microsoft UDA(Universal Data Access) 전략의 이론적인 개념을 구체화한 프로그래밍 인터페이스 모델이다. UDA(범용 데이터 엑세스)는 관계형, 비관계형, 계층형 등과 같은 모든 유형의 데이터를 엑세스할 수 있는 기능을 제공한다.


4. ADO 컴포넌트의 객체들
ADO 컴포넌트에는 3가지의 주요 객체가 있다. 바로 Connection 객체, Recordset 객체, Command 객체.

1) Connection 객체
처음 데이터베이스에 연결을 할 때 사용되는 객체이다. 주로 ODBC나 OLE DB를 통하여 하게 된다.

먼저 Connection 객체를 생성

Set cn = Server.CreateObject("ADODB.Connection")

여기서 볼 수 있듯이 객체 변수에 어떤 객체 인스턴스를 할당할 때는 객체변수명 앞에 'Set' 이라는 접두어를 추가해야 한다.

위의 예처럼 하면 'cn'이라는 객체변수에 Connection 개겣가 하나 생성되어 할당이 된다. 이제는 이 'cn'을 이용하여 데이터베이스에 연결하면 된다.

이 때 ODBC를 이용하여 데이터베이스에 연결할 수도 있고 OLE DB를 이용하여 데이터베이스에 연결할 수도 있다. ODBC를 이용한다면 앞에서 ODBC 설정에서 지정했떤 DSN을 기억하여 다음처럼 Connection의 open 메서드를 이용하여 데이터베이스에 연결을 하게 된다.
Access의 경우 계정이 따로 없으므로 다음처럼 DSN만 써주면 된다. Access 파일의 DSN은 'member' 이었다.

Access인 경우 :
cn.open "member"

SQL Server인 경우 :
cn.open "DSN", "계정ID", "암호"

이렇게 되면 데이터베이스와 연결이 완료된 것이다.

데이터베이스 연결연결하여 여러 가지 작업을 한 후에는 데이터 베이스 연결을 종료해야 한다.

cn.close

이것으로 데이터 베이스 연결은 끊어졌다. 다시 데이터베이스 작업을 하려면 다시 데이터베이스 연결부터 시도해야 될 것이다.

2) Recordset 객체
Recordset 객체는 데이터 베이스에 연결이 된 다음 데이터베이스로 명령을 보내게 되는데, 특별히 select query(쿼리)를 보내어 그 쿼리의 결과를 받을 때 사용하는 객체이다.

Set rs = Server.Createobject("ABODB.Recordset")

이렇게 Recordset 객체가 생성되었으면 이제 쿼리나 명령을 실행할 수 있다.

rs.open "select * from member", cn

이 때 open 이렇게 만들어진 레코드셋은 Recordset 객체의 여러 가지 메서드와 속성을 이용하여 읽어보거나 수정할 수가 있다

한 번 open이 된 Recordset 객체는 사용이 끝나면 닫아주는 습관을 가지는 것이 좋은데, 닫을 때는  다음처럼 Connection 객체와 마찬가지로 close 메서드를 사용하면 된다.

rs.close

3)Command 객체
Command 객체는 위의 두 객체에 비해 용도가 많지는 않으나 나름의 특징을 가지고 있다. 사실 Command 객체만으로도 데이터베이스의 연결과 명령 또는 쿼리의 실행이 가능하지만 Command 객체가 사용되는 주요 사용처는 stored procesure(저장 프로시저)의 싱핼이나 매개변수가 포함된 쿼리의 실행 등의 경우에 유용하다.

Set cm = Server.CreateObject("ProgID 입력")

cm.AtiveConection = cn
cm.CommandText = "delete from member where id = hong' "
cm.execute

이렇게 명령이 수행되고 나면 데이터베이스에서 id가 hong인 레코드를 모두 삭제 했을 것이다.


데이터 베이스에 명령을 수행하는 방법은 한 가지만 있는 것이 아니라 Connection 객체, Recordset 객체, Command 객체 어느 것을 사용해도 가능하다.

'공부 > ASP' 카테고리의 다른 글

Recordset 객체  (0) 2011.06.08
Connection 객체  (0) 2011.06.07
SQL 기초  (0) 2011.06.01
실습 - HTML 웹 문서에서 VBScript를 사용하여 웹 페이지를 작성해 본다.  (0) 2011.05.31
Server 객체  (0) 2011.05.31
반응형
1. select

형식>
select 필드명1, 필드명2, .... from 테이블명
[where 조건식]

설명>
- select 뒤에는 가져올 필드이름을 나열한다.
- from 뒤에는 테이블이름을 쓴다. 두 개 이상의 테이블이라면 쉼표(,)로 구분하여 나열한다.
- where 뒤에는 어떤 조건에 합당한 레코드를 뽑아 올 것인지 검색식을 입력하게 된다. 이 때 필드 형식이 문자열이면 SQL에서는 반드시 외따옴표('')로 값을 둘러싸야 한다.

2. 여러 가지 조건식을 사용한 select 문
and - 그리고
or    - 또는
=     - 같다
<>   - 같지 않다.
크다, 작다, 작지 않다, 크지 않다,  - >, <, >=, <=
포함한다[하지 않는다] - [not] in (값1, 값2,...)
부분 문자열 일치한다[하지 않는다] - [not] like %문자열%
두 값의 사이이다[아니다] - [not] between 값1 and 값2
null 값이다[아니다] - is [not] null

3. 레코드의 정렬
쿼리문 마지막에 "order by" 추가함으로써 이루어진다.
예> 모든
select * from member order by name asc

이때 오름차순으로 정렬하고자 하면 "asc"라고 하고, 내림차순으로 정렬하고자 하면 "desc"라고 하면 된다.

4. 중복된 행 제거
select 쿼리의 결과 중복된 행이 있을 수 있다. 이의 제거를 원한다면 from 다음의 필드명을 나열할 때 중복이 되는 필드명 앞에 "distinct"를 붙여 주면 된다.

select distinct age from member where birthm = 10

5. 계산 함수
avg - 평균값
count - 개수
max - 최고값
min - 최저값
sum - 합계

예제1>회원의 나이 평균을 구해보라.
         select avg(age) from member

예제2>회원의 각 성별 나이 평균을 구해보라.
         select sex, avg(age) from member group by sex

예제3>여성회원은 모두 몇명인가?
         select count(*) from member where sex = '여'

6. 서브 쿼리(부질의)
서브 쿼리란 질의 내에 또 질의가 있는 질의를 말한다. 예를 들어 회원 중 id가 'pear'인 회원보다 나이가 적은 회원의 레코드를 검색해 보려고 한다. 이 경우 물론 'pear' 회원의 나이가 22살인 것을 확인하여 다음처럼 하면 될 것이다.

select * from member where age < 22

그러나 나이 필드를 직접 확인하지 않고 'pear' 회원의 나이를 검색하여 처리해야 한다면 어떻게 해야 할까? 이럴 경우에 서브 쿼리를 사용하면 된다. 'pear' 회원의 나이를 검색하려면 간단히 다음처럼 하면 될 것이다.

select age from member where id = 'pear'

가만히 생각해보면 이 쿼리를 나이 22살 대신 쓰면 될 것 같다. 즉, 완성된 쿼리는 다음과 같다.

select * from member where age < ( select age from member where id = 'pear' )


7. insert
형식>
inset into 테이블명(필드명1, 필드명2, ...)
values (필드명1 의 값, 필드명2 의 값, ...)

8. update
update 테이블명 set
필드명1 = 필드명 1의 값,
필드명2 = 필드명 2의 값,
...
[where 조건식]

8. Delete
delete from 테이블명
[where 조건식]

'공부 > ASP' 카테고리의 다른 글

Connection 객체  (0) 2011.06.07
ADO 컴포넌트와 ODBC/OLE DB  (0) 2011.06.03
실습 - HTML 웹 문서에서 VBScript를 사용하여 웹 페이지를 작성해 본다.  (0) 2011.05.31
Server 객체  (0) 2011.05.31
Session 객체  (0) 2011.05.31
반응형
<html>
<head>
<title>Exercise 1</title>
<SCRIPT LANGUAGE="VBScript">

Sub btnClick()
       Alert("HELLO! VBSRIPT!")
End Sub

</SCRIPT>
</HEAD>

<body>

다음 버튼을 클릭하세요 <br>
<INPUT TYPE="button" VALUE="CLICK" OnClick="btnClick">

</body>
</html>

'공부 > ASP' 카테고리의 다른 글

ADO 컴포넌트와 ODBC/OLE DB  (0) 2011.06.03
SQL 기초  (0) 2011.06.01
Server 객체  (0) 2011.05.31
Session 객체  (0) 2011.05.31
Application 객체  (0) 2011.05.31
반응형
Request 객체, response 객체, application 객체와 session 객체는 ASP에서 미리 제공하는 객체이므로 특별한 객체의 생성과정 없이 바로 사용하였다. 그러나 이외의 대부분의 객체들은 별도로 객체의 생성과정을 거쳐야만 사용할 수 있다. 다른 객체를 생성해주기 위해서는 Server 객체를 이용해야 한다. Server 객체가 객체를 생성하기 위해서는 createObject 메서드를 이용하여 객체를 생성할 수 있다.

ASP의 확장성
ASP의 확장서은 바로 이러한 객체의 자유로운 생성에 있다고 하겠다. ASP에서는 서버의 컴포넌트를 이용하여 필요한 기능을 확장할 수 있다. ASP 컴포넌트는 DLL형태로 제공되며 일반적으로 특정 기능을 가진 객체를 포함하고 있다. ASP가 기본적으로 제공하는 컴포넌트도 있지만, 개발자가 자체적으로 개발하여 사용할 수 있고, 외부의 여러 업체에서 개발한 컴포넌트도 많이 있다.

새로운 객체의 생성은 CreateObject 메서드의 인자로 progID라는 생성할 객체의 타입을 받아서 해당 객체를 생성한다. 일반적으로 progID의 형식은 '[업체.]컴포넌트[.버전]' 의 형식을 갖는다.

예문>
<html>
<body>

         <hr>
         <h4> Server 객체 - createObject 메서드 </h4><p>
         <%
              set objBrowser = server.createObject("MSWC.BrowerType")
              if isObject( objBrowser ) then
                 response.write "현재 브라우저는 " & objBrower.brower & " "
                 response.write objBroser.version & " 이다 "
         %>

</body>
</html>

7번째 줄 : server 객체의 createobject 메서드를 이용하여 객체를 생성하는 부분이다.

8~11번째 줄 : 객체의 생성이 잘 되었는지 확인하는 함수가 isObject()이다. if 문에서 객체를 가리키는 변수 objBrower를 isObject() 함수를 통하여 객체가 정상적으로 생성되었는지를 확인한다.

'공부 > ASP' 카테고리의 다른 글

SQL 기초  (0) 2011.06.01
실습 - HTML 웹 문서에서 VBScript를 사용하여 웹 페이지를 작성해 본다.  (0) 2011.05.31
Session 객체  (0) 2011.05.31
Application 객체  (0) 2011.05.31
ASP 기본구조  (0) 2011.05.30
반응형
Session 객체는 사용자 연결이 만들어질 때마다 생성되는 객체이다. 따라서 사용자 연결이 종료되면 소멸되는 특징을 갖는다.

컬렉션
- Contents
속성
- CodePage
- LCID
- SessionID
- TimeOut
메서드
- Abandon
- Remove
- RemoveAll
이벤트
- OnStart
- OnEnd

Session 이벤트
사용자가 어플리케이션에 처음으로 페이지를 요청한 경우 OnStart 이벤트가 발생하고, 사용자가 세션을 종료할 때 OnEnd 이벤트가 발생한다. 이 두 이벤트 핸들러는 globla.asa에 정의되어 있는 Session_OnStart, Session_OnEnd 서브루틴이다.

Session 변수
Session 객체의 Contents 컬렉션에 저장되며 사용자 연결이 유지되는 동안 해당 사용자가 접근하는 페이지 내에서만 유효한 값이 된다.
Session 변수는 application 변수와 비슷하게 사용된다. 다만 사용 범위가 사용자별로 한정되어 있다는 차이가 있다. session 변수는 session 객체의 contents 컬렉션에 변수이름과 값이 쌍의 형태로 저장되어 있다.
Session 변수를 삭제하기 위해서 제공되는 메서드로 Remove, RemoveAll이 있다. 특정 Session 변수를 삭제를 위해서 Session.contents.remove 메서드를 이용하고, 모든 session 변수 삭제를 위해서 session.contents.removeall 메서드를 이용하면 된다.

Session 객체 속성
session 객체의 sessionID속성은 현재 사용자를 가리키는 ID이며, 접속한 사용자는 모두 다른 ID를 갖는다. Timeout 속성은 세션의 종료 시간을 설정한 것으로 마지막 페이지 접근 후 세션 종료까지 기다리는 시간을 가리킨다. 디폴트 값은 20분이며 재 설정이 가능하다.


'공부 > ASP' 카테고리의 다른 글

실습 - HTML 웹 문서에서 VBScript를 사용하여 웹 페이지를 작성해 본다.  (0) 2011.05.31
Server 객체  (0) 2011.05.31
Application 객체  (0) 2011.05.31
ASP 기본구조  (0) 2011.05.30
global.asa 파일  (0) 2011.05.26
반응형

Application  객체는 웹 어플리케이션 차원에서 웹 페이지 간에 공유하고자 하는 값을 저장하거나, 이벤트를 적절히 처리하기 위한 객체이다.

컬렉션
- Contens
메서드
- Lock
- Unlock
- Remove
- RemoveAll
이벤트
- OnStart
- OnEnd

Application 이벤트
OnStart 이벤트는 어플리케이션이 시작할 때, 즉 어플리케이션의 첫 페이지를 클라이언트가 요청할 때 발생한다.
OnEnd 이벤트는 어플리케이션이 종료할 때 즉 웹 서비스가 동작을 멈출 때에 발생한다.
이 이벤트들이 발생하면 global.asa 파일에 있는 Application_OnStart, Application_OnEnd 서브루틴이 동작하도록 되어 있다.

Application 메서드
Lock과 Unlock은 Application 변수를 사용 할 때 필요한 메서드이다. Application 변수는 동시에 여러 사용자가 사용할 수 있으므로 만약에 한꺼번에 같은 Application 변수의 값을 변경하려고 하면 원치 않는 값이 될 수 있기 때문이다.

예문>
<%
    Application.Lock
          Application("userCount") = Application("userCount") + 1
    Application.Unlock
%>

Application 변수
어플리케이션 내에서 공유할 값을 저장하기 위해 사용한다. 데이터베이스를 연결할 때 필요한 연결 문자열을 여러 페이지에서 공통으로 사용할 경우에 Application 변수에 저장하여 사용할 수 있다.

Application 컬렉션
Contents 컬렉션은 어플리케이션 내의 모든 변수를 키와 값의 쌍 형태로 저장하고 있다. 앞에서 보았던 application 변수인 application("userCount")는 application.contents("userCount")와 동일한 의미를 가짐을 알 수 있다.

'공부 > ASP' 카테고리의 다른 글

Server 객체  (0) 2011.05.31
Session 객체  (0) 2011.05.31
ASP 기본구조  (0) 2011.05.30
global.asa 파일  (0) 2011.05.26
쿠키  (0) 2011.05.26
반응형
정적 웹 사이트 - 웹서버에서 항상 같은 문저를 전송하는 것
장점 - 미리 저장되어 있는 문서를 단순하게 전송받게 되므로 처리속도가 빠르다.

동적 웹 사이트 - 사용자가 어떤 웹 사이트에 방문하였을 때에 그 사용자에 따라 웹 서버는 서로 다른 결과를 보여주는 것

예문)hello.asp

<html>
<head>
<title>hello</title>
</head>

<body>

<%
Response.Write "Hello Asp"
%>

</body>
</html>

<%= 출력할 변수나 문자열 %>
<% Response.Write 출력할 변수나 문자열 %>


식별자 - 변수나 함수의 이름이 될 수 있는, 프로그래머가 선언하는 단어를 의미
1. 문자와 숫자, _로 이루어져 있다.
2. 특수 문자나 메타 문자를 사용할 수 없다.
3. 길이는 255자 이내로 제한된다.
4. 첫 문자는 숫자를 사용할 수 없다.
5. 대소문자의 구별이 없다.


변수

Dim 변수
Dim strName

프로그래밍을 할 때 가독성을 늘리려고 strName처럼 선언하는 것이 바람직한 방법일 것이다.

선언된 변수에 특정한 값을 넣기
예문)
strName = "홍길동"
intYear = 2006

ASP는 변수를 선언하지 않고도 사용할 수 있으며 데이터 형을 지정하지 않아도 사용할 수 있다. 만약 프로그래머가 선언한 변수만 사용하고자 한다면 코드의 앞부분에 <%Option Explicit%>를 입력하면 된다. 만약 Option Explicit를 입력 했을 때에는 Dim으로 선언하지 않은 변수는 에러를 발생하게 될 것이다.

상수

변수는 프로그램 코드에 따라 변하는 값을 저장한다. 하지만 때로는 고정된 값을 저장해야 할 필요가 있을 때가 있다. 그럴때 고정된 값을 저장하기 위해 사용하는 것이 상수 이다.
상수는 Const 키워드를 사용하여 선언한다.

형식> Const 변수 = 값
예   > Const MaxNumber = 23064434


자료형
자료형이란 변수나 상수에서 가질 수 있는 값의 형식을 말한다.
ASP에서는 모든 데이터 형식이 Variant라는 형식으로 지정해 놓았기 때문에 실제로 데이터 형식을 지정하여 사용하지는 않는다. Variant 형식이란 저장되는 값에 따라 자동으로 자료형을 변환시키는 것을 말한다.

숫자형 자료형
Variant 자료형이 지원하는 형식
Integer, Long, Byte, Single, Double, Currency


문자형 자료형
ASP에서 Variant형을 사용하므로 문자열을 저장하려면 큰 따옴표로 둘러싸인 문자열을 선언한다.

형식 > 변수 = "문자열"
예    > strName = "홍길동"

날짜형 자료형
날짜 정보를 저장하는 형식으로 날짜와 시간을 저장할 수 있다. 일반적으로 날짜형 변수는 #를 사용하여 데이터를 저장한다. 만약 #를 사용하지 않고 선언을 한다면 문자 자료형이나 숫자 자료형이 될 것이다.

예> strTime = #05/05/2006#
      Response.Write "회원님이 가입하신 날짜는 " & strTime & " 입니다. "


불린(Boolean)형
변수 값이 True나 False의 값을 저장하는 자료형이다. 자동으로 -1과 0으로 변환된다.

기타
Empty : 값을 할당받지 못하기 때문에 전혀 값을 가지고 있지 않은 자료형
NULL : 데이터를 가지고 있지 않은 필드를 가리킬 때 사용하는 자료형
Object : 객체를 나타내는 자료형


연산자
연산자란 수학적, 논리적 연산을 수행하는 기호를 나타낸다.

산술 연산자
+ 더하기, - 빼기, * 곱하기, / 나누기 , ^ 지수, - 음수, mod 나머지

비교 연산자
= 같다, < 보다 작다, <= 보다 작거나 같다, > 보다 크다, >= 보다 크거나 같다, <> 같지 않다

논리 연산자
AND 논리곱(두 조건이 모두 참이여야 참이 됨)
OR   논리합(두 조건 중 하나만 참이면 참이됨)
NOT    부정(조건 값을 반대로 만듦)
XOR          (두 조건의 값이 서로 달라야 참이 됨)

연결 연산자
문자열을 합칠 때 필요한 연산자로 &를 사용한다.


배열

고정 크기 배열
배열은 변수와 마찬가지로 Dim 키워드를 사용하여 선언한다. 배열을 선언할 때 ( ) 안에 배열 크기를 지정하여 선언하는 것을 고정 크기 배열이라고 한다.

형식> 변수 (숫자)
예   > Dim strMember(2)


동적 배열
동적 배열은 배열을 선언할 때 ( ) 안에 배열 크기를 지정하지 않고 선언하는 것으로 배열에 저장할 데이터 수가 불분명할 때 사용한다. 만약에 배열 크기가 정해지게 된다면 ReDim 키워드를 사용하여 배열 크기를 재지정해야 한다.

형식> 변수()
예   > Dim strMember()

다차원 배열
여러 개의 인수를 사용하여 선언하는 배열을 말한다. 인수를 하나만 사용하면 일차원 배열이고 그 괴에 2개 이상의 인수를 정하면 다차원 배열이 된다. 다차원 배열은 60차원까지의 배열 선언이 가능하다.

형식> 2차원 배열일 때 : 변수(숫자,숫자)
예   > Dim strMember(2,2)


주석
주석문은 프로그래밍한 코드를 실행하는데 아무런 영향을 주지 않으며 소스 코드 설명 등을 첨가할 때 사용한다. 서버에서 해당 웹 페이지를 처리할 때 주석문은 제거하고 처리하기 때문에 말 그대로 단지 소스 코드를 쉽게 이해하고 유지 보수 등을 위해 사용한다.

HTML 주석은 '<!-- 설명 -->'를 사용하고 ASP는 작은 따옴표(')를 사용하여 주석문을 만들 수 있다.


제어문

IF문
IF 문에서 정한 조건식에 참, 거짓에 따라 해당 문장을 실행하는 제어문이다. IF 문과 Else 문을 이용하여 조건문을 정의하고 IF 제어문의 끝은 End if로 끝을 맺는다.

형식> IF 조건식 then
             문장 1
         Else
             문장 2
         End if
예   > if intScore = 1 then
             response.write "회원 입니다."
         else
             response.write "회원이 아닙니다."
         end if

조건식이 2개 이상일 경우에는 ELSEIF 문을 사용하여 나타낸다.
형식> IF 조건식1 then
             문장 1
         Elseif 조건식2 then
             문장 2
         Else
             문장 3
         End if00

예 > if intScore > 10 then
             response.write "회원님의 등급은 골드 입니다."
       elseif intScore > 5 then
             response.write "회원님의 등급은 실버 입니다."
       else
             response.write "회원님의 등급은 일반 입니다."
       end if

Select Case 문
if문은 각 조건식의 참, 거짓을 판단하여 해당 문장을 실행한다면 Select case 문은 하나의 조건식만을 판단한다. 그리고 그 결과 값을 Case문의 값과 비교해 해당 문장을 실행 하는 구조를 가지고 있다.

형식> Select Case 조건식
                   Case 값 1
                           문장 1
                   Case 값 2
                           문장 2
                   Case 값 3
                           문장 3
        End Select

예  > Select Case strScore
                   Case "Gold"
                    response.write "회원님의 등급은 골드 입니다."
                   Case "Silver"
                    response.write "회원님의 등급은 실버 입니다."
                   Case else
                    response.write "회원님의 등급은 일반 입니다."
       End Select


반복문

For문
선언한 변수에 초기 값을 저장하여 최종 값까지 증가 값만큼 수를 증가시키며 루프 문을 돌면서 해당 문장을 실행시킨다. 증가 값만큼 값을 증가시키다가 최종 값과 같아지면 해당 루프문을 빠져나오게 된다. 만약 증가 값을 선언하지 않으면 초기 값에서 최종 값까지 변수의 값이 자동으로 1씩 증가하게 된다.

형식> For 초기값 To 최종값 Step 증가값
               문장
         Next
예   > For i = 1 To 10 Step 1
               response.Write "회원님의 방문횟수는 " & i & " 입니다.<BR>"
         Next

For Each문
For Each문은 앞에서 배운 For 문과 비슷하지만 배열 등의 항목에서 주로 사용되는 반복문이다. 배열을 For문을 사용하여 출력하게 되는 때에는 미리 해당 배열의 길이를 알아야 하지만, For Each문을 사용하게 되면 배열의 길이를 모르더라도 배열의 갯수만큼 루프를 돌면서 해당 문장을 실행시킬 수 있다.

형식> For Each 요소 In 배열
               문장
         Next
예   > For Each strItem In strBuy
               Response.Write <h2>strItem</h2> & "<br>"
         Next

Do Loop문
조건식의 값이 거짓이 나올때 까지 루프 문을 돌며 문장을 반복 실행한다. For문은 정확한 초기 값과 최종 값을 설정해야 하는 반면 Do Loop문은 조건식을 만족하게 할 때까지 반복 실행한다.

형식> Do While 조건식
              문장
         Loop
예   > Do While intcount <10
              response.write "회원님은" & intCount &
              " 번째 방문입니다.<br>"
              IntCount = IntCount + 1
         Loop

프로시저
프로시저란 같은 코드를 여러 곳에 사용할 때에 편리한 코딩을 위하여 하나의 그룹으로 설정한 것을 말한다. 즉 미리 그룹으로 설정해 놓고 필요할 때마다 호출하는 것이다. 이러한 작업을 통해 프로그래밍함으로써 사용하기 쉽고 유지보수 관리를 편리하게 할 수 있다. 프로시저는 서브 프로시저와 함수로 구분할 수 있다.

서브 프로시저
서브 프로시저는 프로시저 안의 코드에서 실행한 결과 값을 반환하지 않고 호출할 때에 해당 서브 프로시저를 실행하게 된다.

형식> Sub 프로시저명(인수)
                실행문장
         End Sub
예   > Sub Cal(intNum1, intNum2)
                Response.Write "Num1 = " & intNum1 & " num2 = " & IntNum2 & "<br><br>"
         End Sub

함수
서브 프로지서와 전체적인 구조나 활용 면에서는 비슷하나 다른 점이 있다면 서브 프로시저와는 달리 실행 결과 값을 반환한다.

형식> Function 함수명(인수)
                실행문장
         End Function
예   > Function Cal (intNum1, intNum2)
                 Cal = intNum1 + intNum2
                 Response.Write "Num1 = " & intNum1 & ", Num2 = " & intNum2 & "<br>"
         End Function










'공부 > ASP' 카테고리의 다른 글

Session 객체  (0) 2011.05.31
Application 객체  (0) 2011.05.31
global.asa 파일  (0) 2011.05.26
쿠키  (0) 2011.05.26
Response 객체  (0) 2011.05.25
반응형
ASP 웹 어플리케이션은 여러 웹 페이지와 global.asa 라는 파일로 구성되어 있다.

global.asa의 구성형식

<Script language = VBScript runAt = server >
Sub Application_ Onstart
'어플리케이션이 처음 시작할 때 실행할 스크립트 코드
end Sub

Sub Application_OnEnd
'어플리케이션이 종료될 때 실행할 스크립트 코드
end Sub

Sub Session_OnStart
'사용자 세션이 처음 시작할 때 실행할 스크립트 코드
end Sub

Sub Session_OnEnd
'사용자 세션이 종료될 때 실행할 스크립트 코드
EndSub
<Script>


Application 이벤트
어플리케이션이 처음 시작할 때 발생하는 이벤트가 OnStart 이벤트이고, 어플리케이션이 종료될 때 발생하는 이벤트가 OnEnd 이벤트이다.

Session 이벤트
Session객체의 OnStart 이벤트는 사용자 연결이 발생할 때마다 발생하는 이벤트이다. 그리고 사용자의 연결이 끊어지는 순간 OnEnd 이벤트가 발생하며, 마찬가지로 Session_OnEnd 서브루틴이 동작한다.


- 데이터 공유 : Application 변수와 Session 변수 이용
ASP에서는 데이터를 공유하는 방법으로 Application 변수와 Session 변수를 사용한다. Application 변수는 Application 객체에서 정의하고, Session 변수는 Sesstion객체에서 정의 한다. Application 변수는 어플리케이션 전체에서 공유할 수 있는 값이면, Session 변수는 사용자 연결 시 생성되는 Session 객체에서 정의 되므로 사용자 연결이 유지되는 세션 내에서 공유할 수 있는 값이다.



'공부 > ASP' 카테고리의 다른 글

Application 객체  (0) 2011.05.31
ASP 기본구조  (0) 2011.05.30
쿠키  (0) 2011.05.26
Response 객체  (0) 2011.05.25
ASP 객체모델 - Form 태그를 이용한 전송 정보 가져오기  (0) 2011.05.25
반응형
쿠키는 클라이언트에 값을 남겨두고 페이지 접속 시마다 자동으로 서버에 전송되어 이전 페이지와 다음 페이지간의 관련 정보 전송을 해주는 역할을 한다.

쿠키를 저장하는 경우 response 객체의 cookies 컬렉션을 이용하여 클라리언트 PC에 저장하며, 읽어오는 경우는 request 객체의 cookies 컬렉션을 이용한다.

' 쿠키 저장 경우
response.cookies("name") = "tom"
' 쿠키 값 읽을 경우
personName = request.cookies("name")

쿠키는 클라이언트에 파일 형태로 저장되며 일반적인 경우 브라우저의 종료와 함께 소멸 한다. 그러나 쿠키를 유효기간을 지정하여 사용할 수도 있다. 이런 경우에는 브라우저를 종료해도 쿠키는 남아 있을 수 있다.

'공부 > ASP' 카테고리의 다른 글

ASP 기본구조  (0) 2011.05.30
global.asa 파일  (0) 2011.05.26
Response 객체  (0) 2011.05.25
ASP 객체모델 - Form 태그를 이용한 전송 정보 가져오기  (0) 2011.05.25
ASP 객체 모델  (0) 2011.05.24
반응형
클라이언트가 서버에게 전송하는 정보를 전달하는 객체가 Request 객체라면, response 객체는 그와 반대로 서버가 클라이언트에게 전송하는 정보를 담고 있는 객체이다.

컬렉션
- Cookies
속성
- TotalBytes
- Butter
- Cache Control
- Charset
- ContentType
- Expires
- ExpiresAbsolute
- PICS
- Status
메서드
- BiraryWrite
- AddHeader
- AppendToLog
- Clear
- End
- Flush
- Redirect
- Write

컬렉션
Response 객체가 가지고 있는 컬렉션은 cookies 컬렉션이 유일하다. 쿠기 값은 웹 브라우저가 있는 PC에 저장되어 있는 값으로서 한 번 설정된 쿠키 값은 클라이언트와 서버의 http 헤더를 이용하여 계속 주고 받으며, 변경된 내용은 클라이언트의 쿠키 값에 즉시 반영된다.

ContentType 속성
Response 객체의 ContentType 속성은 전송되는 문서의 MIME 타입을 나타낸다.

Status 속성
Status 는 서버가 돌려주는 요청에 대한 상태 값을 나타낸다. 정상인 경우는 200 또는 300번대의 값을 돌려주며, 잘못된 경로 및 문서의 요청등 클라이언트의 잘못인 경우는 400번 대의 에러 메세지를 돌려준다. 서버의 실행 프로그램 오류로 인하여 문제가 발생하는 경우 500번 대의 상태 값이 돌려진다. 웹 브라우저는 이 값을 기준으로 브라우저 창에 적절한 메세지를 보내주게 된다.


redirect 메서드
redirect 메서드는 현재 보이는 페이지를 인자로 지정한 주소의 문서로 자동으로 이동시킨다.

<%
Response.redirect(http://www.dongyang.ac.kr)
%>

Clear, flush, end 는 페이지 버퍼링과 관련된 메서드 들이다.
Flush -  현재 버퍼링되어 있는 내용을 클라이언트로 보내는 역할을 한다.
Clear - 현재 버퍼링 되어있는 내용을 클라이언트로 보내지 않고 지운다.
End - 현재 버퍼에 있는 내용을 클라이언트로 보내고 결과 페이지 작성을 종료한다.

'공부 > ASP' 카테고리의 다른 글

global.asa 파일  (0) 2011.05.26
쿠키  (0) 2011.05.26
ASP 객체모델 - Form 태그를 이용한 전송 정보 가져오기  (0) 2011.05.25
ASP 객체 모델  (0) 2011.05.24
[HTML]Form  (0) 2011.05.18
반응형
- Post 방식을 이용하는 경우
Post 방식으로 사용자 입력 정보를 제공하려면 Form 태그의 method 속성에 post 값을 주면 된다.

<Form action = "정보를 던저 주고자 하는 곳", method ="Post" >
이름 : <input type = "text" name = "name" >
<input type ="submit" value = "입력하기">
</Form>

 위 형식으로 서버에 전송된 값을 가져오기 위해서 request 객체의 form 컬렉션을 이용하여 값을 가져올 수 있다.

<%
name = request.form("name")
%>

- Get 방식을 이용하는 경우
Get 방식으로 사용자 입력 정보를 제공하려면 Form 태그의 method 속성에 get 값을 주거나 method 속성을 생략하면된다.

<Form action = "정보를 던저 주고자 하는 곳", method ="Get" >
이름 : <input type = "text" name = "name" >
<input type ="submit" value = "입력하기">
</Form>

 위 형식으로 서버에 전송된 값을 가져오기 위해서 request 객체의 queryString 컬렉션을 이용하여 값을 가져올 수 있다.

<%
name = request.questString("name")
%>


http://203.237.160.180/asp3/result43.asp?name=%C8%AB&grade=88

? : 주소와 데이터 구분자
= : 키와 값 구분자
& : 데이터 쌍 구분자 

- URL 인코딩
URL 인코딩은 영문과 숫자인 경우 그대로 전송되나, 한글이나 특수 문자인 경우는 16진수로 변화되어 전송된다. 이때 특수 문자는 1바이트로 표현되지만, 한글의 한문자는 2바이트로 표현된다.

Space -> +
%       -> %25
+        -> %2B
황      -> %C8%AB

QueryString 의 값을 가져오는 경우 '키'를 이용하여 컬렉션으로부터 하나씩 값을 가져와서 사용할 수도 있지만, For each ... next 문을 이용하여 컬렉션 루프를 만들어 queryString 값을 가져올 수도 있다.

- 컬렉션 이름을 생략하고 사용하는 경우
Request 객체 사용 시 컬렉션의 이름을 생략하고 사용하는 경우가 있다. 예를 들어 request.form("name")이라고 해야 정상이지만, request("name")이라고 해도 form 컬렉션에서 name 키에 해당하는 값을 가져온다.

- 컬렉션 우선순위
QueryString > form > cookies > serverVariables

'공부 > ASP' 카테고리의 다른 글

쿠키  (0) 2011.05.26
Response 객체  (0) 2011.05.25
ASP 객체 모델  (0) 2011.05.24
[HTML]Form  (0) 2011.05.18
문자열 함수  (0) 2011.05.17
반응형
1. 객체 구성 : 속성과 메서드
속성은 객체의 특성을 나타내는 값이고, 메서드는 객체가 가지고 있는 실행 함수라고 간단히 설명할 수 있다.
예를 들어 자동차를 하나의 객체로 볼 경우, 자동차의 속성은 차의 색상, 모델, 연식, 최고 속도 등 자동차가 가지는 정적인 특성이며, 메서드는 달린다. 멈춘다. 가속한다 등의 행위와 관련된 동적인 특성을 말한다.

2. ASP 객체 모델
ASP 객체 모델은 5개의 주요 객체로 구성되어 있다.

(1) Request 객체는 사용자의 요청 정보를, Response 객체는 서버의 응답정보 제공
(2) Application 객체는 웹 서비스 전체에 하나 존재하고, Session 객체는 사용자 별로 존재
(3) Server 객체 : 새로운 객체를 생성하여 사용할 경우 필요
(4) 객체의 구성요소 : 컬렉션, 속성, 메서드, 이벤트
     컬렉션은 배열과 유사한 형태의 정보로서 '키'와 '값'의 쌍으로 구성되는 형태
     속성은 객체가 가지는 정적인 특성으로 내부변수
     메서드는 객체가 가지는 실행 함수
     이벤트는 객체에서 발생할 수 있는 사건


3. Request 객체
Request 객체 : 사용자의 요청 정보를 담고 있다.

컬렉션
- ClientCertificate : 웹 서버가 보증서를 요구할 경우 브라우저가보증서 필드를 서버에 전송할 때 사용된다.
- Cookies : 클라리언트가 서버에 연결될 때 보내는 정보인 쿠키(cookie)를 키와 값의 쌍으로 구성하여 클라이언트에 저장하여 사용한다.
- Form : 클라이언트가 Form 태그를 이용하여 사용자 입력 정보를 전달 할 경우 Post 방식으로 그 값을 전달할 경우에 입력 정보를 저장하는 곳이다.
- QueryString : 클라이언트가 Form 태그를 이용하여 Get 방식으로 사용자 입력 정보를 전달할 경우와 URL을 이용하여 직접 정보를 전달하는 경우의 값을 저장하는 컬렉션이다.
- ServerVariables : 미리 정의되어 있는 환경 변수 값을 가지는 컬렉션이다.

속성
- TotalBytes : 클라이언트가 서버로 보내는 정보의 총 바이트 수를 나타낸다.

메서드
- BinaryRead : 클라리언트가 서버로 보낸 정보의 데이터를 읽는 메서드이다.

'공부 > ASP' 카테고리의 다른 글

Response 객체  (0) 2011.05.25
ASP 객체모델 - Form 태그를 이용한 전송 정보 가져오기  (0) 2011.05.25
[HTML]Form  (0) 2011.05.18
문자열 함수  (0) 2011.05.17
프로시저  (0) 2011.05.17
반응형
1.ASP는 서버 스크립트 언어
사용자로부터 웹 문서에 대한 요청을 받고, 요청 받은 문서는 절절한 서버스크립트 코드 해석 처리 후, 그 결과를 HTML 문서 형식으로 웹 브라우저에게 제공한다. 이때 사용자는 웹 문서에 대한 주소뿐만 아니라, 사용자의 입력 정보를 웹 서버에 보낼 수 있다. 이 사용자 입력정보의 전달 처리는 ASP 코드가 아닌 HTML의 Form태그가 그 역할을 담당한다.

2. 간단한 Form 예제
<html>
<body>

<h2>간단한 Form 태그 예</h2><hr>

<Form action = "result.asp" method = "post">
  이름 : <input type = "text" name = "name" ><p>
  성적 : <input type = "text" name = "grade" ><p>
<input type = "submit" value = "입력하기" >
<input type = "reset" value = "취소하기" >
</Form>

</body>
</html>


3. <Form> 태그와 </Form> 태그 단위로 서버에 전달
즉, 하나의 웹 페이지에 여러 개의 Form 태그를 사용하여 선별적으로 전달이 가능하다.


text 입력 필드
기본형식)
이름 : <Input type = "text" name = "name" >

submit 버튼과 reset 버튼
기본형식)
<Input type = "submit" value = "입력하기" >
<Input type = "reset" value = "취소하기" >

4. Form 태그 속성(action, method, enctype)

Action 속성 : 입력 값을 받을 페이지 지정
                   (Action 속성이 생략된 경우의 디폴트 값은 Form 태그가 정의된 문서 자신이된다.)
Method 속성 : 사용자 메세지 전송 방식을 지정 (Get, Post) - 기본값은 Get
Get : 입력 정보를 웹 서버에 요청하는 문서의 주소를 가리키는 URL에 더하여 서버로 전달
            Post : URL과 별도로 서버에 전달

Enctype 속성 : 입력 값 전송을 위한 encode 형식 지정
Enctype 속성은 전송하는 입력값의 encode 형식을 지정한다. 대부분의 경우 디폴드 값인 'application/x-www-form-urlencoded' 가 생략되어 있지만, 파일 업로드를 하게 되면 반드시 'multipart/form-data'로 enctype 속성 값을 지정해 주어야 한다.


5. Input 태그 속성
type 속성 : 텍스트, 라디오 버튼, 체크박스 등의 입력 필드의 특성을 지정
name 속성 : 입력 값의 구분자
value 속성 : 초기 값을 알려줌
size 속성 : 크기를 나타냄(기타 텍스트 입력 필드인 경우)
maxlength 속성 : 최대 글자수를 정해줌(기타 텍스트 입력 필드인 경우)

5. 라디오 버튼, 체크박스 및 Select 태그

Select 태그는 여러 개의 목록을 제공하고 하나 이상의 값을 선택하도록 제공하는 태그이다.

라디오 버튼 - 하나만 선택 하는 경우 사용
<Input type = "Radio" name = "Job" value="student" >학생

체크박스 - 동시에 여러 값을 선택하는 경우 사용
<Input type = "checkbox" name = "Job" value="student" >학생

목록에서 값 선택하기
  <Select name = "list" size = "1">
     <Option value="list1" > 목록1
     <Option value="list2" > 목록2
     <Option value="list3" > 목록3
</Select>


목록에서 다중값 선택하기
<Select name="listbox" size="3" multiple>
  <Option valuse="listbox1"> 목록1
 <Option valuse="listbox2"> 목록2
 <Option valuse="listbox3"> 목록3
</select>


'공부 > ASP' 카테고리의 다른 글

ASP 객체모델 - Form 태그를 이용한 전송 정보 가져오기  (0) 2011.05.25
ASP 객체 모델  (0) 2011.05.24
문자열 함수  (0) 2011.05.17
프로시저  (0) 2011.05.17
제어문 및 반복문  (0) 2011.05.16
반응형
1. left(), right(), mid()

예문)
<html>
<body>
    <h2>문자열 함수 - left(), right(), mid() </h2>
<%
    strASP = "active server pages"
%>

문자열 : <% strASP %> <br><br>
왼쪽 6 문자 : <% =left(strAsp,6)%><br>
오른쪽 5 문자 : <% =right(strAsp,6) %><br>
가운데 6 문자 : <% =mid(strAsp,8,6) %>

</body>
</html>

2. len() : 문자열 길이, trim() : 모든 공백제거, rTrim() : 오른쪽 공백만 제거, lTrim() : 왼쪽 공백만 제거

3. Replace(), InStr() : 문자열 검색함수
Replace() 함수는 주어진 문자열에서 특정 문자열을 검색하고 검색한 문자열을 다른 문자열로 치환한다.
InStr() 함수는 주어진 문자열에서 특정 문자열을 찾아내어 그 위치 값을 돌려준다. 찾지 못하면 '0' 값을 돌려준다.
찾는 방향은 왼쪽에서 오른쪽,
InStrRev() 함수는 오른쪽에서 왼쪽으로 문자열을 찾아낸다.


4. strComp() : 문자열 비교
두개의 문자열을 인자로 받아서 두 문자열이 같으면 '0'값을 돌려준다. 문자열이 다른 경우의 리턴 값은 결과가 '>'이면 1을 '<'이면 -1을 돌려준다. 비교하는 문자열의 하나가 null인 경우 리턴 값은 null이 된다. 또한 대소문자 구분 없이 비교하려면 세 번째 인자에 1의 값을 넣어주면 대소문자 구분 없이 문자열 비교가 이루어 진다.

'공부 > ASP' 카테고리의 다른 글

ASP 객체 모델  (0) 2011.05.24
[HTML]Form  (0) 2011.05.18
프로시저  (0) 2011.05.17
제어문 및 반복문  (0) 2011.05.16
배열  (0) 2011.05.16
반응형

1. 서브루틴과 함수
VBscript에서 프로시저는 여러 스크립트 문장을 모아서 하나의 모듈 형태의 단위로 사용하는것을 말한다.

Sub 서브루틴명(인자1, 인자2, ..., 인자n)

...

End Sub


Function 함수명(인자1, 인자2, ..., 인자n)

...

함수명 = 리턴값

End Function


예문)
<html>
<body>
 <h2>프로시저 - 서브루틴, 함수</h2>

<%
     '서브루틴
     Sub Print(val)
           Response.write val & " "
     End Sub

     '함수
     Function funcSum(val1, val2)
           funcSum = val1 + val2
     End Function

intSum = 0
For intCnt = 1 to 10
     intSum = funcSum(intSum, intCnt)
         if intCnt = 1 then
              print(intCnt)
         else
              Response.write "+ " & intCnt & "  "
         end if
next
Response.write "= " & intSum & "<br>"

%>

</body>
</html>

'공부 > ASP' 카테고리의 다른 글

[HTML]Form  (0) 2011.05.18
문자열 함수  (0) 2011.05.17
제어문 및 반복문  (0) 2011.05.16
배열  (0) 2011.05.16
연산자  (0) 2011.05.13
반응형
제어문

1. if ~ then 문

기본형식(조건식이 참 일 경우 스크립트 실행)

if 조건식 then
... '스크립트
end if


2. if ~ then else 문

기본형식(조건식이 참 일 경우 스크립트1 실행, 거짓일 경우 스크립트2 실행)

if 조건식 then
... '스크립트1
else
... '스크립트2
end if


3. select case 문

기본형식(검사식과 비교내용을 비교하여 스크립트 실행)

Select case 검사식
case 비교내용1
... '실행문1
case 비교내용2
.,. '실행문2
case  else
... '실행문3
end

반복문

1. While ... Wend 문

기본형식(주어진 조건이 True인 경우에 반복 루프를 계속 실행하고, 조건이 만족되지 않을 경우, 즉 False 값을 가지는 경우 반복 루프를 빠져나간다.)

while 조건문
... '실행문
Wend


2. Do ... Loop 문

기본형식(while 문 처럼 조건을 평가하여 루프를 반복)

Do While 조건식
... '실행문
Loop


기본형식(while을 Loop 뒤에 두는 경우 최소 1번은 수행한다)

Do
... '실행문
Loop While 조건식


기본형식(조건식이 True 가 될 때 까지 반복문을 수행)

Do Until 조건식
... '실행문
Loop

Do
... '실행문
Loop Until 조건식


3. For ... Next 문

기본형식(반복의 횟수를 알고 있는 경우 주로 사용)

For index = 시작 값 to 종료 값 step 증감문
... '실행문
Next


4. For Each ... Next 문

기본형식(배열이나 객체 컬렉션의 값을 이용하여 반복 루프를 수행한다. 이는 배열이나 객체 컬렉션의 경우 미리 몇 번 루프를 반복해야 할지 알기 어려운 경우에 유용하게 사용한다)

For Each 요소 in 객체
... '실행문
Next

'공부 > ASP' 카테고리의 다른 글

문자열 함수  (0) 2011.05.17
프로시저  (0) 2011.05.17
배열  (0) 2011.05.16
연산자  (0) 2011.05.13
ASP를 위한 VBScript  (0) 2011.05.13
반응형
1. 배열은 연속적인 기억공간을 가지는 변수

배열을 사용하면 위치를 알려주는 색인 번호를 사용하여 효율적으로 값을 참조하거나, 반복 루프를 쉽게 설정할 수 있어서 코드 작성이 쉽고 간단하다.

2. 배열 색인 값의 시작은 '0'

Dim arrCol(9)

색인의 시작 값이 0 이므로 10개의 요소를 가지게 된다.

배열에 값을 저장하는 방법은 변수의 사용 방법과 동일하다

ArrCol(0) = white
Arrcol(1) = 1234
ArrCol(2) = yellow
...
ArrCol(9) = 654

3. 동적 배열
동적 배열을 사용하는 경우는 처음에 크기를 정할 수 없고, 코드의 수행 중에 크기가 정해지는 경우에 사용한다.

Dim arrDynamic()
...
ReDim arrDynamic(10)
...
ReDim arrDynamic(20)

4. 이전 배열 값 유지 : Preserve

ReDim Preserve arrDynamic(20)

5. 다차원 배열의 선언

Dim ArrTable(2,3)

ArrTable(0,0), ArrTable(0,1), ...... ArrTable(2,3)



예문)2행의 총 합 구하기
Dim arrTable(2,3)
Dim sum

...

sum = 0
for idx = 1 to 4 step 1
sum = sum + arrTable(1, idx-1)
next




'공부 > ASP' 카테고리의 다른 글

프로시저  (0) 2011.05.17
제어문 및 반복문  (0) 2011.05.16
연산자  (0) 2011.05.13
ASP를 위한 VBScript  (0) 2011.05.13
hello.asp  (0) 2011.05.13
반응형
1. 할당연산자 ( = )
Dim intA
IntA = 10


IntA = 10 (상수 할당)
IntB = IntA (변수 할당)
IntB = IntA + 5 (연산식 결과 할당)

2. 산술연산자 ( + , - , *, /, ^, \, mod)
+ 더하기

IntA =10 + 5 (덧셈)
StrB = "Good" + "Morning" (문자열 연결)

- 빼기
* 곱하기
/ 나누기(소수점 형태의 몫을 돌려준다.)
^ 어떤 수의 지수승을 구하는데 사용
\ 나누기(정수 형태의 몫을 돌려준다)
mod 나누기(수를 나눈후, 그 나머지를 돌려준다)

3. 비교연산자( <, <=, >, >=, =, <>)

4. 논리연산자 ( AND, OR, Not, Xor ......)

AND -  두 연산식이 참 일 경우 결과는 참
OR - 두 연산식중 하나라도 참 일 경우 결과는 참
Not - 연산식 결과의 반대값 (참 일경우 거짓, 거짓 일 경우 참)
Xor - 두 연산식의 결과가 같으면 거짓, 다르면 참

5. 연결 연산자
String1 = "Good"
String2 = " Morning !"
StrRes = String1 & String2

StrRes 변수는 "Good Morning !" 값을 갖게 된다.


연산자 우선순위
산술 > 연결 > 비교 > 논리 > 할당 연산자 순

'공부 > ASP' 카테고리의 다른 글

프로시저  (0) 2011.05.17
제어문 및 반복문  (0) 2011.05.16
배열  (0) 2011.05.16
ASP를 위한 VBScript  (0) 2011.05.13
hello.asp  (0) 2011.05.13
반응형

<%Option explicit%>

<html>
 <body>
<%
Dim intage
Dim intnextage
intage = 10
intnextage = inage + 1

response.write intnextage

%>
 </body>
</html>

<명시적인 변수 선언을 위한 option explict>

위의 소스는 오류가 발생한다.

하지만
<%Option explicit%>을 빼면
1 이라는 결과가 나온다.

inage 변수가 선언되지 않았지만 묵시적으로 선언된 것으로 되어 결과값이 나오게 된다.

Dim 변수
변수 = 변수값

response.write
출력문

'공부 > ASP' 카테고리의 다른 글

프로시저  (0) 2011.05.17
제어문 및 반복문  (0) 2011.05.16
배열  (0) 2011.05.16
연산자  (0) 2011.05.13
hello.asp  (0) 2011.05.13
반응형

<예문>
<html>
 <head>
  <title>hello asp</title>
 </head>

 <body>
 <P>
  <% For i = 1 To 3 Step 1 %>
   HELLO ASP student <% =i %> <br><br>
  <% Next %>
 </body>
</html>


ASP코드는 <% 와 %> 사이에 둔다.
ASP코드는 기본적인 연산자, 제어문 등을 VBScript(Visual Basic Script)코드이다.

'공부 > ASP' 카테고리의 다른 글

프로시저  (0) 2011.05.17
제어문 및 반복문  (0) 2011.05.16
배열  (0) 2011.05.16
연산자  (0) 2011.05.13
ASP를 위한 VBScript  (0) 2011.05.13

+ Recent posts