DKSQL 시작하기

2009. 7. 27. 18:21·WEB TIP/ASP

출처: http://www.daekiya.pe.kr/


이번 프로젝트에서 Java의 스트러츠, iBatis처럼 SQL과 웹페이지을

분리하고 싶어서 이리저리 돌아다니던중에 좋은 글이 눈에 띠어서~~

샤샤샥~

설명대로 셋팅하고 실제구동을 했는데 아주아주 괜찮네요. ㅎㅎ


DKTools이 아니었다면 삽질의 반복끝에 완성했을것을

감격의 눈물이 ㅜㅜ


1. 초기화 하기


우선 다운받은 파일을 프로젝트에 넣고 사용하고자 하는 곳에 다음과 같이 선언한다.

<!-- #Include Virtual = "/DKTools/DKSimpleQueryLoader/DKUtil.asp" -->
<!-- #Include Virtual = "/DKTools/DKSimpleQueryLoader/DKSimpleQueryLoader.asp" -->


<%

Dim DKSQL
Set DKSQL = New DKSimpleQueryLoader
%>


2. 데이터베이스 등록

다음과 같이 데이터베이스를 등록하도록 한다. UDL 파일을 만드는 방법은 다른 많은 블로그를 참고하기 바란다.

<%
DKSQL.SetUdlFile Server.MapPath("/_lib/classes/dbHelper/admin.udl")
%>


3. 쿼리저장소 등록

SQL 을 모아 둔 XML 그룹 파일을 지정한다. 앞으로 이 파일들은 쿼리저장소라고 부르도록 하겠다.

쿼리저장소는 쿼리의 재사용을 가능하게 해 주는 역할을 하게 된다.

쿼리 저장소는 다음과 같이 추가 하도록 한다.

<%
DKSQL.AddQuery Server.MapPath("/_lib/query/adminMenu.xml")
%>

쿼리저장소 파일은 그룹별로 묶어서 관리 할 수 있으며, 여러개를 추가하여 운용할 수 있다.

쿼리 저장소의 데이터는 xml 형태로 작성 되며, 다음과 같이 구성된다. 우선, DB에 다음과 같은 TABLE이 있다고 가정하겠다.

Table Name : adminMenu

 NAME TypeLength
 menuId varchar 20
 menuName varchar 20
 sortNo int 

그리고 쿼리저장소 파일을 만든다. 이 파일에 adminMenu 를 조작하는 DML 을 담아두었다. 경로는 위에저 지정한 /_lib/query/adminMenu.xml 로 지정한다.

File Name : adminMenu.xml

<query>

<update id="updateAdminMenu">
    update adminMenu set menuName = '#menuName#'
              <isEqual parameter="sortNo" compareValue="0">,sortNo = 0</isEqual>
              <isNotEqual parameter="sortNo" compareValue="0">,sortNo = 1</isNotEqual>
    where <isNotEmpty parameter="menuId">menuId = '#menuId#'</isNotEmpty>
</update>

<insert id="insertAdminMenu">
    insert into adminMenu(menuId, sortNo, menuName)
    values('#menuId#', '#sortNo#', '#menuName#')
</insert>

<delete id="deleteAdminMenu">
    delete from adminMenu where menuId = '#menuId#'
</delete>

<select id="selectAdminMenu">
    select menuId, menuName, sortNo
    from adminMenu
    where 1 = 1 <isNotEmpty parameter="menuId">and menuId = '#menuId#'</isNotEmpty>
</select>

<select id="selectAdminMenuCount">
    select count(*) as cnt
    from (<include refId="selectAdminMenu" />) as a
</select>

</query>


DML 기능 별로 노드를 구성하여 추가한다. 대소문자에 주의하여야 하며, 다음 네가지 노드를 제공한다.

select : SELECT 를 위한 노드
insert : INSERT 를 위한 노드
update : UPDATE 를 위한 노드
delete : DELETE 를 위한 노드


각 노드는 SQL 문장을 포함하고 있으며 제어명령을 통해 데이터를 비교하여 쿼리를 실행할 수 있다.

제어명령에는 다음의 다섯가지가 제공된다.

isEmpty : 지정한 parameter 가 공백이면 실행
isNotEmpty : 지정한 parameter 가 공백이 아니면 실행
isEqual : 지정한 parameter 가 compareValue 와 일치하면 실행
isNotEqual : 지정한 parameter 가 compareValue 와 일치하지 않으면 실행
include : refId 에 지정한 SQL을 삽입한다.


4. DTO(Data Transfer Object) 만들기

DKSQL은 데이터의 관리를 구조적이고 명확히 하기 위해 DTO를 사용한다. DTO란 쉽게 말하자면 데이터를 묶은 그룹이라고 생각하면 된다.

DTO는 위 테이블의 데이터를 담을 것이다. 이 DTO 는 다음과 같이 만든다.

File Name : AdminMenuDto.asp

Public Class AdminMenuDto
    Public MenuId
    Public MenuName
    Public SortNo
End Class


이제 adminMenu Table 의 데이터를 가져와서 조작하기에 필요한 모든 준비를 끝냈다. 그럼 다음 문서에서 실 사용 예를 들어서 각 기능에 대하여 설명해 보도록 하겠다.

'WEB TIP > ASP' 카테고리의 다른 글

DKSQL 활용하기  (0) 2009.07.27
SVN  (0) 2008.11.18
HTML 제거 함수  (0) 2008.11.13
유입경로 함수  (0) 2008.11.13
SQL Injection  (0) 2008.11.13
'WEB TIP/ASP' 카테고리의 다른 글
  • DKSQL 활용하기
  • SVN
  • HTML 제거 함수
  • 유입경로 함수
제프
제프
제프
ZEP@BLOG
제프
전체
오늘
어제
  • 분류 전체보기 (193)
    • 주저리 (4)
    • WEB TIP (5)
      • 웹뉴스 (1)
      • UI (3)
      • ASP (35)
      • HTML-CSS (5)
      • jQuery (7)
      • C# ,ASP.NET (29)
      • MS-SQL (40)
      • Cloud (1)
      • Oracle (24)
      • Exchange 2003 (3)
      • Windows Server (9)
      • 용어 (1)
      • IIS (4)
      • 기타 (1)
      • Redmine (3)
    • 영어 (7)
    • 경제.경영자료 (10)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 인덱스
  • ADO
  • case
  • asp
  • Git
  • oracle
  • injection
  • MS-SQL
  • Convert
  • 숙취
  • jquery
  • ASP.NET
  • SQL
  • Windows2003
  • c#
  • IIS
  • 오라클
  • 암호화
  • SEQUENCE
  • 영어

최근 댓글

최근 글

hELLO· Designed By정상우.v4.5.2
제프
DKSQL 시작하기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.