아고고 힘들어 죽것다.. 어제 농구하다 발목 다치고, 새벽1시 넘어서까지 친구들이랑 겜방에서 스타하고 -_- 오늘 컨디션이 말이아니다. 특히나 오늘은 연말 마감기간이라 일이 많이 들어올듯 싶은데.. -_-; 그래도 짬짬히 일하는 도중에 글 쓴다. (이러다 걸려서 짤리지나 않을지 몰라 -_-) 사실 글쓰는 것 상당히 귀찮은데 (지금도 상당히 귀찮다. -_- 가끔 내가 뭐하고 있는지 모르겠다 -_-) 근데 한번 쓰니 나름대로 재미가 들려버린것 같다. -_- 어제는 글쓴것 msdn 흉내내려고 이것 저것 따라서 해봤다. (역시 근데 내가 하니 허접하게 변하더군 -_-)

어제 msdn 의 소스 보면서 느낀것이지만 역시나 사이트를 잘만들었다. 일전에도 핫메일의 소스보기해서 본적있는데 흠..역시 -_-b 확실히 다른 여느 사이트와는 틀리게 이것 저것 모르는것들을 많이 이용했다. -_- (그런것 보면 더 우울해진다..나는 언제 저정도 하나 하고... -_-)

오늘은! TDC를 이용해서 여러가지 잼나는 것들을 해보겠다. 내가 처음에 TDC를 접하면서 이런것들 했을때 상당히 신기해 했었다. (나만 그런가 -_-;;. 근데 지금까지도 가끔씩 놀랜다 -_-) 음..뭐 고수들이 보면 웃을지도 모르지만 그 당시에 나한테는 충격이였다 -_-; 그럼 그 충격적(??)인 것들을 배워보것다. -_-;

DB를 이용한 데이타 출력
이전에 배운것은 단순히 text 파일의 내용을 읽어서 브라우저에 뿌려주는것이였다. 만약 데이타가 추가/삭제 될경우 일일이 그 text 파일을 열어서 수정해 주어야한다 상당히 불편하다 -_-; 따라서 유동적으로 데이타를 이용하려면 asp 파일을 이용하면 된다.(뭐 굳이 asp일필요는 없다. cgi, php, jsp..등등 프로그래밍이 가능한 언어이면 아무거나 상관없다) asp 파일을 이용하되 몇가지 형식은 지켜야한다... 이전 글 보았겠지만 필드 구분자, 문자열 구분자, 열 구분자..등등을 지켜서 데이타를 뿌려주면 된다. 그럼 예제를 일단 보자!

list_asp.asp

<%
' 변수 선언및 초기화
Dim DBCon
Dim strConn
Dim strQry
Dim szHead
Dim szBody
szHead  = ""
szBody  = ""
strConn = ""

' DB 연결 문자 변수
strConn = strConn&"Provider=SQLOLEDB.1;Persist Security Info=True;"
strConn = strConn&"Data Source=localhost;"     ' Server Name
strConn = strConn&"User ID=sa;"                ' User ID
strConn = strConn&"Password=;"     ' User Password
strConn = strConn&"Initial Catalog=NorthWind;" ' DataBase

' DB 객체 생성및 DB 오픈
Set DBCon = Server.CreateObject("ADODB.Connection")
DBCon.Open strConn    
' 쿼리문 실행결과를 레코드셋으로 반환
strQry = "select CustomerID,CompanyName,ContactName from Customers"
Set rs = DBCon.Execute(strQry)
Do While not rs.eof
    db_CustomerID  = rs(0)
    db_CompanyName = rs(1)
    db_ContactName = rs(2)
    
    ' TDC 형식으로 데이타를 가공한다.
    szBody = szBody&"|"& db_CustomerID  &"|¶"
    szBody = szBody&"|"& db_CompanyName &"|¶"
    szBody = szBody&"|"& db_ContactName &"|^"
    rs.MoveNext()
Loop

' TDC 형식으로 헤더를 만든다.
szHead = "CustomerID¶CompanyName¶ContactName^"
Response.Write szHead
Response.Write szBody
%>

list_asp.htm

<OBJECT id=List CLASSID="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83">
    <PARAM NAME="UseHeader" VALUE="true">
    <PARAM NAME="DataURL" VALUE="list_asp.asp">
    <PARAM NAME="TextQualifier" VALUE="|">
    <param NAME="FieldDelim" VALUE="¶">
    <PARAM NAME="RowDelim" VALUE="^">
    <PARAM NAME="CharSet" VALUE="euc-kr">
</OBJECT>
<table border="1" DataSrc="#List">
    <thead>
    <tr>
        <th>CustomerID</th>
        <th>CompanyName</th>
        <th>ContactName</th>
    </tr>
    </head>
    <tbody>
    <tr>
        <td><span datafld="CustomerID" DATAFORMATAS="HTML"></span></td>
        <td><span datafld="CompanyName" DATAFORMATAS="HTML"></span></td>
        <td><span datafld="ContactName" DATAFORMATAS="HTML"></span></td>
    </tr>
    </tbody> 
</table>

2-01.gif 
*) 참고로 자잘한 소스 설명은 안하것다..뭐 예를 들어서 db를 오픈하고..게시물 가져오고..그러한 부분들 말이다. -_-; 그런것 일일이 설명하자면 귀찮다. -_- 주석으로 대신하니 알아서 이해하시라 -_-

list_asp.asp의 소스를 보면 알겠지만 DB 연결을 했고 사용하는 데이타베이스는 northwind를 이용했다. (나는 여기서 MS-SQL 2000 버젼을 이용했는데 Access 나 기타 다른 DB를이용하시는 분들은 알아서 DB에 연결 해라. -_-;;) list_asp.asp의 실행 결과를 보면 다음과 같다.
2-02.gif 

이전에 보았던 list.txt 파일과 똑같은 구조로해서 페이지 내용들이 뿌려져있음을 알 수 있다. 그래야만 TDC 객체가 그 데이타들을 읽을수 있기 때문이다. 빨간색으로 표시한 부분이 헤더부분이고 그 다음 부분 부터는 데이타들이다. (이전에 보았던 list.txt 보다 정렬이 안되어 있어서 보기가 좀 힘들지도 모르겠다 -_-)

list_asp.htm 페이지는 단순히 데이타를 보여주기 위한 페이지이기 때문에 별다르게 이전에 보았던(list.htm) 페이지와 다를것이 없다. (이전 강좌 내용을 보았다면 이해하는데 큰 무리가 없을것이다. -_-;)

뿌려져나온 게시물을 보면 꽤 많은 편이다. 이것을 만약 15개로 제한하고 싶다면 테이블 태그안에 속성하나만 정의해두면 된다. 다음을 보자

<table border="1" DataSrc="#List" DataPageSize="15">

이와같이 DataPageSize를 설정해 두면 100개의 데이타를 가져온다고 해도 막상 부려지는 데이타는 15개로 제한되게 된다.