728x90
사용자 삽입 이미지

728x90

'Developer > ASP (Active Server Page)' 카테고리의 다른 글

asp 내장함수  (0) 2008.08.07
IIS 6.0에서 ASP include file 에러 발생시 대처법  (0) 2007.12.27
FileSystemObject개체  (0) 2007.07.03
728x90
abs() - 절대값구하기

array(배열) - 배열을 반환

asc() - 문자의 ANSI문자값을 반환

atn() - 아크 탄젠트로 반환

cbool() - boolean형식으로 반환

cbyte() - byte형식으로 반환

ccur() - currency형식으로 반환

cdate() - date형식으로 반환

cdbl() - double형식으로 반환

chr() - asc()함수의 반대, ANSI문자를 일반문자로 변환

cint() - interger형식으로 반환

clng() - long형식으로 반환

cos(각도) - 주어진 각도의 코사인 값을 반환

createobject() - 자동화 인터페이스를 통해 다른 응용프로그램이나 프로그래밍 도구에 나타나는 객체에 대한 참조를 만들어 반환

cstr() - string형식으로 반환

date() - 현재의 날자를 반환

DateDiff(간격, 날짜1, 날짜2 [,firstdayofweek[, firstweekofyear]]) - 간격인수 yyyy(년)

q(분기), m(월), y(일[일년기준]), d(일), w(요일), ww(주[일년기준]), h(시), n(분), s(초)

dateserial(년,월,일) - 주어진 년,월,일에 대한 date형식을 반환

exp() - 주어진 수에대한 자연로그(승수로 거듭제곱하는 수) 밑인 e를 반환

filter(inputstring,값[,include[,비교]])) - inputstring는 검색할 문자열의 1차원 배열
include는 true나 false값을 가지는데, true로 설정되면 값발견시 그값을 가진 배열을 반환하고,flase로 설정되면 검색에 맞지않는 부분의 배열을 반환
비교는 비교형식을 나타내는 숫자값입니다

fix() - 주어진 수의 정수를 반환

formatcurrency() - 원화 형식으로 반환 예) \1,000

formatdatetime() - 날자와 시간으로 형식화하여 반환

formatnumber(숫자,소수자릿수) - 숫자로 형식화된 식을 반환 소숫점 몇째자리...

formatpercent(수,소수자리수) - 퍼센트형식으로 반환 기본 소수2째자리까지.

hex() - 주어진 수를 16진수로 변환

hour() - 0과23 사이의 시간을 나타낸다

inputbox(프롬프트[,제목][,기본값][,xpos][,ypos][,helpfile,context]) - 대화상자

instr([시작,]문자열1,문자열2[,비교]) - 시작은 문자열 검색 시작위치, 문자열1은 검색할 문자이며, 문자열2는 찾아야할 문자, 비교는 비교상수를 나타냄

instrrev() - instr()과 반대로 문자 끝에서부터 검색

int() - 주어진 수의 정수부분을 반환

isarray() - 주어진 변수가 배열인지 판단하는 boolean값을 반환

isdate() - 주어진 식이 날짜로 전환 될수 있는지 나타내는 boolean값을 반환

isempty() - 주어진 변수가 초기화 되었는지 나타내는 boolean값을 반환

isnull() - 주어진 식이 유효한 데이터가 있는지 없는지 boolean값을 반환

isnumberic() - 주어진 식이 숫자로 값이 정해질 수 있는지 나타내는 boolean값 반환

isobject() - 자동화 객체를 참조하는지 여부를 나타내는 boolean값을 반환

join(목록[,구분기호]) - 배열에 포함되어 있는 여러 문자열을 결합하여 만든 문자열을 반환 목록은 1차원 배열이름, 구분기호는 문자열을 구분하기위해 사용하고 기본값은 "" 공백

lbound(배열이름[,차원]) - 주어진 배열에서 사용할 수 있는 가장 작은 첨자를 반환
배열이름은 배열 변수의 이름, 차원은 배열의 차원중 가장 작은 값을 나타냄

lcase() - 주어진 문자를 소문자로 반환

left(문자열,수) - 주어진 문자를 왼쪽으로부터 주어진 수만큼의 문자열을 반환

len() - 주어진 문자열의 문자 개수를 세는 함수

loadpicture(그림파일의이름) - 그림객체를 반환

log() - 주어진수의 자연 로그를 반환

ltime() - 앞에 공백이 없는 문자열을 반환

mid(문자열,시작[,길이]) - 주어진 문자열에서 주어진 위치에서부터의 길이만큼의 문자를 반환

minute(시간) - 시간에서 분값(0~59)을 반환

month(날짜) - 달의 값(1~12)을 반환

monthname(달) - 주어진달의 숫자표현을 문자표현으로 바꾸어준다

msgbox(프롬프트[,단추][,제목][,helpfile,context]) - 프롬프트는 대화상자 안의 내용 단추는 단추모양,제목은 제목표시줄이름, helpfile은 도움말위치,context는 도움말 문맥번호

now() - 현재 날자와 시간을 반환

oct() - 주어진 숫자의 8진수 값을 나타내는 문자를 반환

replace(문자열,찾을문자열,바꿀문자열[,시작[,횟수[,비교]]]) - 문자열은 바꿀 대상, 찾을 문자열은 문자열에서 바꾸어야 할 문자, 바꿀문자열은 찾은 문자열을 대치할 문자열, 시작은 검색시작위치 횟수는 바꾸는 횟수, 비교는 바꿀 때의 비교형식

right(문자열,수) - 주어진 문자의 오른쪽으로 부터 주어진 수만큼의 문자를 반환

rnd(수) - 난수를 반환 수는 생략가능

round(수) - 반올림한 수를 반환, 소수 첫째자리 반올림

rtrim(문자열) - 뒤에 공백이 없는 문자열을 반환

scriptengine() - 사용중인 스크립트 언어를 나타낼때 사용

scriptenginebuildversion() - 사용중인 스크립트 엔진의 버전 수를 반환

scriptenginemajorversion() - 사용중인 스크립트 엔진의 주 버전 수를 반환

scriptengineminorversion() - 사용중인 스크립트 언어의 보조 버전 수를 반환

second(시간) - 시스템 시간중 초값(0~59)을 반환

sgn(수) - 주어진 숫자의 부호를 나타내는 정수를 반환 0보다크면 1, 같으면 0, 작으면 -1을 반환

sin() - 주어진 라디안 값의 사인값을 반환

space(수) - 주어진 수만큼의 공백이 포함된 문자열을 반환

split(문자열[,구분기호[,수[,비교]]]) - 문자열은 배열에 포함될 문자열, 구분기호는 문자열 구분하기 위한 기호를 표시. 생략시 "" 공백, 수는 반환될 문자열의 수를 나타냄, 비교는 바꿀때의 비교형식

sqr(수) - 주어진 수의 제곱근을 반환

strcomp(문자열1,문자열2[,비교]) - 두개의 문자열을 비교하여 결과값을 반환

strreverse(문자열) - 주어진 문자열을 뒤에서부터 읽은 문자열을 반환

string(수,문자) - 주어진 문자가 주어진 수만큼의 반복된 문자열을 반환

tan(수) - 주어진 라디안 값의 수 만큼의 탄젠트 값을 반환

time() - 현재 시간을 반환

timeserial(시, 분, 초) - 주어진 시간,분,초에 대한 시간 값을 반환

timevalue(시간) - 시간이 포함된 date형식을 반환해주는 함수

trim(문자열) - 앞뒤 공백이 없는 문자열을 반환해 줄 때 사용

typename(변수이름) - 주어진 변수의 정보를 나타내는 문자열 반환

ubound(배열이름[,차원]) - 배열의 차원으로 가장 큰 첨자를 반환, 배열함수의 개수 - 1 반환

ucase(문자열) - 주어진 문자를 대문자로 바꾸어 줍니다

vartype(변수) - 변수의 형식을 나타내는 값을 반환

weekday(날짜[,firstday of week]) - 요일을 나타내는 정수를 반환, firstday for week는 첫재요일을 숫자로

weekdayname(요일,약어, firsrday of week) - 요일은 숫자, 약어는 약어의 유무의 부울값

year() - 현재의 년도를 나타낼때 쓰임


출처 : http://polomin.tistory.com/entry/asp-내장함수

728x90
728x90

OS : Windows 2003 Server
IIS Version : 6.0

include file 을 사용했을시
<!--#include file="../abc.asp"-->

(영문일 경우)
Active Server Pages, ASP 0131
Disallowed Parent Path
The Include file '../<filename .ext>' cannot contain '..' to indicate the parent directory.
/<path>/<filename .ext>, line <number>
</number></filename></path></filename>


(한글일 경우)
Active Server Pages 오류 'ASP 0131'
허용되지 않는 부모 경로
/asp/test.asp, 줄 1
'./../abc.asp' Include 파일은 부모 디렉터리를 표시하기 위해 '..'를 사용할 수 없습니다.



위와 같은 에러 메세지를 보게 됐을때는..

include 구문을 변경하거나

<!--#include file="../abc.asp"--> 를 <!--#include virtual="./lib/abc.asp"--> 로 변경


IIS 설정을 변경 해 준다.

(영문일 경우)
IIS -> Home Directory -> App Option -> Enable Parent Paths checkbox  체크


(한글일 경우)
IIS-> 웹사이트 속성 -> 홈디렉터리 -> 구성 -> 옵션 -> 부모경로사용 체크

관련내용 : http://support.microsoft.com/default.aspx?scid=kb;en-us;Q226474
728x90

'Developer > ASP (Active Server Page)' 카테고리의 다른 글

asp 내장함수  (0) 2008.08.07
FileSystemObject개체  (0) 2007.07.03
ASP FormatDateTime  (0) 2007.04.17
728x90

File관련 메소드


CopyFile(src,dest,over) : src 파일을 dest로 복사한다. 겹쳐쓰기 기능은 true가 기본값.


CreateTextFile(fname,over,unicode) : fname을 가진 텍스트 파일을 생성한다. over가 true면 겹쳐쓰기가 가능


DeleteFile(fname,force) : 현재의 파일을 삭제한다.force가 true면 해당 파일이 읽기 전용이라도 강제로 삭제


fileExists(fname) : 해당 파일의 존재 여부를 반환한다.


GetBaseName(fname) : 지정한 파일 경로와 확장자가 제거된 파일명을 반환한다.


GetExtensionName(fname) : 지정한 파일 확장자를 반환한다.


GetFile(fname) : 지정된 파일 경로에 해당하는 File 개체를 생성한다.


GetFileName(path) : 해당 경로에 지정된 파일명을 반환한다.


GetTempName() : 무작위로 생성된 파일명을 반환한다.


MoveFile(sec,dest) : src 경로의 파일을 dest로 옮긴다.


OpenTextFile(fname,io,create,format) : fname으로 된 텍스트 파일을 생성한다. io 값으로 모드를 선택한다.

1: 읽기 2 :쓰기 8 : 덧붙이기




FileSystemObject

*드라이브 정보 얻어 오기

Set fs = Sever.CreateObject("Scripting.FileSystemObject")

Set Cdrive = fs.GetDrive("c:")

Cdrive.freespace                                                                      =>드라이브의 잔여용량을 가져온다.

Cdrive.TotalSize                                                                       =>드라이브의 전체 용량

Cdrive.VolumeName                                                                  =>드라이브의 볼륨명

Cdrive.ShareName                                                                    =>드라이브의 네트워크 공유이름

Cdrive.SerialNumber                                                                  =>디스크 볼륨의 10진 시리얼 번호

Cdrive.RootFolder                                                                      =>드라이브의 루트폴더

Cdrive.Path                                                                               =>드라이브의 경로명               

Cdrive.FileSystem                                                                       =>드라이브의 파일 시스템

Cdrive.IsReady                                                                           =>드라이브의 준비여부(true/false)


*파일정보 얻어 오기

Set fs = Server.CreateObject("Scripting.FileSysteObject")

Set myfile = fs.GetFile("c:/config.sys")

myfile.Size                                                                                => 파일 크기

myfile.Type                                                                               => 파일 타입

myfile.Path                                                                                => 파일 경로

myfile.ShortName                                                                       => 파일 이름

myfile.ShortPath                                                                        => 파일 경로

myfile.ParentFolder                                                                    => 파일의 상위폴더

myfile.Name                                                                              => 파일 이름

myfile.Drive                                                                               => 파일 위치 드라이브명

myfile.DateCreated                                                                     => 파일만들어진 날짜 시간

myfile.DateLastAccessed                                                            => 마지막 액세스된 날짜 시간

myfile.DateLastModified                                                              => 마지막 수정일


*파일생성하기

Set fs = Server.CreateObject("Scripting.FileSystemObject")

Set objFile = fs.CreateTestFile("c:\a\b.txt",true,false)                =>전체경로,덮어쓰기여부,유니코드orASCII코드인지

objFile.FileExists("c:\a\b.txt")                                                 =>파일의 존재 여부 체크 존재하면true 그렇지 안으면 false

objFile.DeleteFile("c:\a\b.txt")                                                 =>파일 지우기


*파일에 글쓰기

Set fs = Server.CreateObject("Scripting.FileSystemObject")

Set objFile = fs.OpenTextFile("c:\a\b.txt",8,true,-1)

=>전체 경로, 1이면 읽기전용 8이면 쓰기가능, true이면 없을경우 새로 생성 false이면 무조건 말일 존재,파일포맷

   첫번째인자만 필수이고 나머지 생략가능  -- Set objFile = fs.OpenTextFile("c:\a\b.txt",8)이런식으로 많이 사용,


*파일에서 글 읽어 오기

Set fs = Server.CreateObject("Scripting.FileSystemObject")

Set objFile = fs.OpenTextFile("c:\a\b.txt",1)       =>글을 읽어 올때는 읽기전용(1) 값으로 반드시 셋팅한다.


Do While objFile.AtEndOfStream<>true                 =>AtEndOfStream은 글의 끝부분에 도달하면 ture를 return한다

       Response.write objFile.readLine & "<br>"     =>글은 한줄씩 읽어 온다.

loop


content = objFile.readall                                  =>글 전체를 읽어 온다.

str = replace(content,chr(13)&chr(10),"<br>")    =>replace(전체문자열,바꾸고자하는것,바꿀문자) chr(13)&chr(10)는 Enter이다

Response.write str


write                          =>파일에 문자열을 입력

writeLine                    => 파일에 문자열과 엔터값(라인)을 입력

WriteBlankLine(i)         =>파일에 i개의 엔터값을 입력

Read(i)                      =>파일에서 i개의 문자만을 읽어온다

ReadLine                   =>파일에서 한라인을 읽어온다

ReadAll                      =>파일에서 모든 텍스트를 읽어온다

Skip(i)                       =>파일에서 i개 만큼 문자를 건너뛴다

SkipLine                    =>파일에서 읽어올때 라인하나를 건너뛴다.

728x90

'Developer > ASP (Active Server Page)' 카테고리의 다른 글

asp 내장함수  (0) 2008.08.07
IIS 6.0에서 ASP include file 에러 발생시 대처법  (0) 2007.12.27
ASP FormatDateTime  (0) 2007.04.17
728x90
간단한 등록절차를 통해 이용할 수 있습니다. 자세한 사항은 아래 링크를 따라가세요.

TABS Upload 링크


탭스 업로드 주요 특징
 
  ASP에서 사용할 수 있는 서버 컴포넌트 
 
 업로드를 위해 별도의 웹 브라우저용 소프트웨어가 필요하지 않습니다.
간단한 인터페이스로 ASP의 Request.Form과 유사한 방식으로 업로드를 처리할 수 있습니다. 
 
  고성능 파일 업로드 
 
 탭스랩만의 One-pass 파싱 기술과 서버 버퍼 최적화 기술을 도입해 최고 성능의 업로드를 보장합니다.
대용량 파일 업로드 뿐만 아니라 여러 클라이언트로 부터의 많은 동시 업로드 상황에서도 최소한의 메모리를 사용하며 빠른 업로드 속도를 제공합니다. 
 
  다운로드 지원 
 
 일반 파일 또는 데이터베이스에 저장된 파일을 다운로드 할 수 있습니다.
다운로드시 파일의 MIME 형식을 자동으로 결정해 줍니다.
다운로드 실패시 이어 받기 기능을 지원합니다.
이어 받기 기능 - 사용자에 의한 취소 또는 네트워크 문제로 인한 끊어짐 등으로 중단된 다운로드를 재시작할 경우 다운로드 받은 데이터 이후부터 다운로드 시작합니다. 
 
  유니코드 파일이름과 폼(form) 값 지원 
 
 유니코드 뿐만 아니라 다양한 언어로 작성된 폼 데이터 값을 지원하므로 업로드된 파일 이름 및 데이터를 원본 그대로 유지할 수 있습니다. 
 
  데이터베이스 지원
 
 업로드된 데이터를 데이터베이스 필드에 저장할 수 있으며, 데이터베이스에 저장된 파일 데이터를 다운로드할 수 있습니다. 
 
  업로드 진행 정보 제공 
 
 현재 업로드되는 상황을 모니터링 할 수 있는 오브젝트를 제공하며 ASP 페이지만으로 다양한 업로드 진행 상황을 출력할 수 있습니다. 
 
  서비스 거부(DOS) 공격 방지 
 
 최대 업로드 가능 크기 이상의 데이터가 전송되는 것을 서버측에서 원천적으로 차단해서 서버 과부하 상태를 미연에 방지합니다. 
 
  이미지 파일 정보 제공 
 
 업로드 되는 파일이 이미지 파일일 경우 이미지 종류와 크기 정보를 제공합니다. 
 
  바이러스 검사
 
 소포스 안티바이러스를 사용해 업로드 파일에 대해 바이러스를 검사할 수 있습니다. 
 
  x64 지원
 
 64비트(x64) 환경을 완벽하게 지원하므로 Windows Server 2003 x64에서 설치해 사용할 수 있습니다. 


728x90

'Software' 카테고리의 다른 글

Web2.0 디자인 스타일 완벽 가이드 무료 버전  (0) 2007.05.11
opencapture  (0) 2007.04.28
Rainlendar-0.22.1  (0) 2007.04.28
728x90

FormatDateTime(Date[, NamedFormat])

 

date

Required. Date expression to be formatted.

NamedFormat

Optional. Numeric value that indicates the date/time format used. If omitted, vbGeneralDate is used.


vbGeneralDate

0

Display a date and/or time. If there is a date part, display it as a short date. If there is a time part, display it as a long time. If present, both parts are displayed.

vbLongDate

1

Display a date using the long date format specified in your computer's regional settings.

vbShortDate

2

Display a date using the short date format specified in your computer's regional settings.

vbLongTime

3

Display a time using the time format specified in your computer's regional settings.

vbShortTime

4

Display a time using the 24-hour format (hh:mm).


Function GetCurrentDate


' FormatDateTime formats Date in long date.


GetCurrentDate = FormatDateTime(Date, 1)


End Function



Response.Write FormatDateTime(Now, 0) & "<br>" '2005-06-21 오후 2:56:46

Response.Write FormatDateTime(Now, 1) & "<br>" '2005년 6월 21일 화요일
Response.Write FormatDateTime(Now, 2) & "<br>" '2005-06-21
Response.Write FormatDateTime(Now, 3) & "<br>" '오후 2:56:46
Response.Write FormatDateTime(Now, 4) & "<br>" '14:56

728x90

'Developer > ASP (Active Server Page)' 카테고리의 다른 글

asp 내장함수  (0) 2008.08.07
IIS 6.0에서 ASP include file 에러 발생시 대처법  (0) 2007.12.27
FileSystemObject개체  (0) 2007.07.03
728x90

출처 : http://www.smashingmagazine.com/2007/04/10/online-converters/


Online converters always come in handy. Once you need to perform some operation with your files, they can save your time achieving the same results online, without installing some specific software. In fact, there are many online tools, which convert formats, files and code snippets for free. Some of them are quite specific tools aimed for developers, but some are common “all-rounders”, which manage to convert almost every format to a more popular one. Using them, you can generate .pdf-documents out of images, images out of texts or RSS-feeds out of web-sites. You can also convert any audio- and video-files immediately - the results can be received via e-mail.

So what can you use? What should you use?

This overview of online-converters for users and developers might give you some useful starting points and improve your productivity.

“All-Rounders”

  • Media-Convert
    Media-Convert can deal with many formats. Most important are Text, HTML, XHTML, Microsoft Word, RTF, PDF, PS, Open Office, Star Writer, CSV, dBase, Microsoft Excel, Pocket Excel, Lotus 123, Quattro Pro, Star Calc, Open Office, MathML, Open Office Formeln, Powerpoint. Besides: Video and Audio-formats.
  • txt2tags
    This tool generates HTML, XHTML, SGML, LaTeX, Lout, Man Page, MoinMoin, MagicPoint and PageMaker-documents out of a single plain text-file with minimal markup.
  • Zamzar
    Zamzar supports conversion between a wide variety of different file formats. Many conversion options, among them 11 document formats, 8 image formats, 9 audio formats and 12 video formats.

Development

HTML & CSS

  • Text to JavaScript
    If you’ve ever tried to make some normal text containing characters like ‘ into a JavaScript variable, you will know how frustrating it can be when you miss one, or you miss a \ or a line break or a tag. Well, let this script do it for you.
  • CSS HTML
    Converts CSS-code to HTML and HTML to CSS-Code.
  • HTML2TXT
    Converts HTML in plain text.
  • HTML2Wiki
    Converts HTML to Wiki-Markup
  • HTML -> PHP, JavaScript, ASP
    This program let you convert your HTML in various scripting languages such as: HTML to PHP, HTML to Javascript and HTML to ASP
  • Draac.Com’s Html To Javascript
    Type or paste your Html codes into the text box below, then press the button and convert your Html coding to Javascript.
  • HTML to JavaScript Convertor
    This tool takes your markup and converts it to a series of document.write() statements that you can use in a block of JavaScript.

Graphics

Color

PDF

  • HTML 2 PDF
    Converts HTML and whole sites to PDF
  • Online PDF Converter
    You can generate plain text, .jpg-, .png-, .gif- or .tiff-images out of .pdf-files.
  • PDF Conversion
    PDF -> Text.
  • Show PDF
    PDF -> HTML.
  • PDF Online
    Converts MS Word (DOC), MS Publisher (PUB), MS Word (RTF), MS Excel (XLS), MS PowerPoint (PPT), HTML (MHT), MS PowerPoint (PPS), Text (TXT) and JPG, PNG, BMP, TIFF, WMF, EMF, GIF to PDF online. The .pdf-file is sent via e-mail.

RSS

  • Feed43
    Generates RSS-feeds out of web-sites
  • RSS2GIF
    This tool converts RSS-feeds to images.
  • RSS/RDF
    RSS -> JavaScript.
  • RSSxl
    Converts web-sites to RSS 2.0.

Further converters



728x90

'Developer' 카테고리의 다른 글

정규표현  (0) 2008.01.29
14 Tab-Based Interface Techniques  (0) 2007.04.18
HTTP Status Code  (0) 2007.04.08
728x90
아래의 내용은 ASP웹 응용 프로그램의 성능을 높이기 위한 팁을 설명한 것이다.

[추가 정보]

1. 가급적 Session 변수를 사용하지 않는다.

Session 변수는 클라이언트 사이드에서 쿠키에 의해 유지되기 때문에, 웹 사용자가 브라우저상에서 쿠키의 사용을 Off했다면 Session변수는 작동되지 않을 것이다. 또한 Session변수는 오랜 시간 동안 유지된다.(새로운 사용자가 웹 서버를 들어왔을 때 생성되어 사용자의 세션이 유지되는 동안 살아있다.) 그러므로 만약 Session변수에 많고 복잡한 개체를 저장한다면 성능 저하를 초래할 것이다.(특히 사용자가 많아지면 많아질 수록) 꼭 필요 시에만 Session변수를 사용하고 사이즈가 큰 Dynamic Array나 ADO 개체, Business개체를 Session변수로 사용하지 않도록 한다.

2.DataBase 성능을 높이기 위해서 ASP에서 SQL 쿼리문을 직접 사용하기 보다는 Stored Procedure를 이용한다.

ASP 내에서 사용된 Database와 관련된 작업들의 성능을 높이기 위한 좋은 방법은 ASP 레벨에서 SQL 쿼리문을 실행하지 않고 저장 프로시저(Stored Procedure)를 사용하는 것이다. 3-Tier 응용프로그램에서 가장 좋은 접근 방법은 ASP에서 저장 프로시저를 호출하는 비즈니스 개체의 메서드를 호출하는 것이다.
이 경우 Middle-Tier인 MTS Component에서는 코드의 유지보수가 훨씬 쉬워지고, DataBase-Tier에서는 SQL 저장 프로시저가 한번 실행되면 SQL서버의 메모리에 캐쉬되기 때문에 다음 번에 실행될 때 훨씬 속도가 빨라지는 장점을 가진다.

3. Connection Pooling을 On한다.

대 부분의 ASP 웹 응용프로그램이 데이터베이스 작업과 연관되어 있기 때문에 데이터베이스 작업의 성능을 높이는 것은 전체 ASP웹 응용프로그램의 성능과 관련이 깊다. 데이터베이스에 연결하기 위해 드는 시간과 리소스는 큰 비중을 차지한다. 그러므로 데이터 연결이 필요한 매 페이지마다 새로운 데이터베이스 연결을 하고 페이지가 실행을 마친 다음에 연결이 삭제되는 것은 특히 웹 서버에 동시 사용자가 많은 경우 성능은 매우 떨어질 것이다. Connection Pooling은 특정 페이지에서 사용된 Connection을 Pool에 가지고 있다가, 이 것이 필요할 때 재 사용할 수 있게 하는 것이다.
ASP 웹 응용프로그램이 Connection Pooling을 사용하게 하려면 레지스트리에서 설정을 확인해야 한다.
IIS 3.0인 경우에는 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\ASP\Parameters 에서 StartConnectionPool 엔트리의 값을 1로 설정해야 한다. IIS 4.0에서는 디폴트로 Connection Pooling이 On 되어 있다.

또한 SQL 서버를 사용하는 경우에는 Network Library를 TCP/IP Socket로 설치해야 한다.

4.Option Explicit를 사용한다.

Option Explicit 옵션을 사용하게 되면, 선언되지 않은 변수는 에러를 발생한다. 선언되지 않은 로컬 변수는 선언된 변수보다 2배 정도 속도가 느리다. 이 옵션을 On함으로써 속도 뿐만 아니라 코드상에서 Mis-Spelling으로 인한 에러를 쉽게 발견할 수도 있다.

5.생성된 개체를 Close하고 파괴하라.

생성한 개체를 쓰고 난 후에는 꼭 그 개체를 Close하고 메모리에서 개체에 대한 인스턴스를 내려야 한다. 특히 ADO 개체인 경우 Connection Pooling이 사용되면 가능한 한 빨리 ADO Connection 개체를 Pool로 되돌려 주는 것이 좋기 때문에 명시적으로 Close와 Set 변수명 = Nothing을 사용해야 한다. 만약 ADO Connection개체를 Close하지 않고 Nothing만 하면 Connection Pooling이 적용되지 않으므로 Close와 Nothing을 모두 명시해야 한다.

6. ADO의 Getstring을 사용하라.

데 이터베이스의 쿼리를 실행하여 웹 페이지에 표시하는 작업은 레코드 수가 많아질 때 ASP의 스크립트 프로세싱 타임을 느리게 하는 원인이 된다. 예를 들어 테이블에 데이터를 나타낼 때 레코드셋의 EOF를 확인하여 DO…LOOP을 돌려 데이터를 테이블에 표시했다. 하지만 ADO 2.0에서 제공하는 GetString을 이용하면 loop이나 Eof의 Check없이 단 한번의 Response.write로 데이터를 테이블에 표시할 수 있게 된다.

7. Collection의 값을 로컬 변수로 복사한다.

사 용자가 ASP Collection의 값을 반복적으로 사용할 필요가 있다면 그 값들을 로컬 변수로 저장한다. 이렇게 함으로써 사용자가 Collection의 값을 사용할 때마다 서버가 Collection에서 값을 찾아오는 작업에 대한 시간을 적게 줄임으로써 스크립트 실행속도를 향상시킨다. 예를 들어 사용자는 다음과 같이 코딩할 수 있을 것이다.
If Request.QueryString("Name") = "Frank" Then
...
End If

If Request.QueryString("Name") = "Steve" Then
...
End If

Response.Write("Your name is " & Request.QueryString("Name"))

하지만 위의 코드에서 사용자가 Request개체를 사용할 때마다 ASP는 Querystring변수명을 읽어들여야 한다. 사용자는 다음과 같이 코드를 수정하므로써 Querystring으로부터 값을 한번만 읽어오게 할 수 있다.
Dim strName
strName = Request.QueryString("Name")

If strName = "Frank" Then
...
End If

If strName = "Steve" Then
...
End If

Response.Write("Your name is " & strName)

8. 데이터베이스 연결에 대해서 include파일을 이용하라.

많 은 ASP개발자가 반복작업을 피하기 위해서 데이터베이스에 연결하는 ADO코드를 Session변수를 이용하는 경우가 있다. 하지만 위에서 언급한 바와 같이 Session변수에 ADO 개체를 할당하는 것은 권장되지 않는다. 이를 위한 가장 간단한 방법은 매 페이지마다 반복되는 데이베이스 연결 코드를 include파일에 작성하여 이 코드가 필요한 페이지마다 Include파일을 명시해주는 것이다.
예를 들어 다음은 코드를 가진 scripts/dbconn.asp라는 페이지를 만든다.
<%
Dim objConn
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "DSN=Blah"
objConn.Open
%>
그 다음 데이터베이스 연결이 필요한 매 페이지에 다음의 한 라인을 추가해주면 된다.



9. <%@ ENABLESESSIONSTATE = False %>

ASP웹 페이지의 성능을 높이는 방법중의 하나는 @ENABLESESSIONSTATE 를 False로 설정하는 것이다. 만약 ASP페이지가 Session변수를 사용하지 않는다면 ASP 페이지의 가장 윗부분에 꼭 다음을 명시한다.
<%@ ENABLESESSIONSTATE = False %>

10.ADO 상수 사용 시 Numeric 상수 대신에 Named 상수를 사용한다.

ADOVBS.INC를 Include하여 ADO의 Named 상수를 사용하는 것이 성능 향상에 도움이 된다.

11. 클라이언트-사이드 폼 Validation을 사용한다.

사 용자가 폼에 데이터를 입력하였을 때, 유효한 데이터가 입력되었는지 확인하기 위해서 클라이언트-사이드 스크립트를 사용하거나 ASP의 서버-사이드 스크립트에서 각 필드의 값을 확인할 수 있다. 서버 사이드 스크립트를 사용하는 경우 유효하지 않은 데이터가 입력된 경우 다시 ASP파일로 Redirection이 일어난다, 이 작업은 서버에 Round Trip을 발생시키기 때문에 성능에 좋지 않다. 클라이언트-사이드 Validation을 이용하여 폼이 Submit될 때 동시에 데이터 Validation이 일어나게 하는 것이 좋다.

--------------------------------------------------------------------------------

(주)마이크로소프트 KNOWLEDGE BASE내에서 제공되는 정보는 어떤 종류의 보증도 하지 아니하고 "있는 그대로"
제공됩니다.(주)마이크로소프트는 시장성에 대한 보증 및 특정한 목적을 위한 적합성에 대한 보증을 포함하여
모든 명시적, 또는 묵시적 보증을 배제합니다.(주)마이크로소프트 또는 그 공급자들은 직접적 손해, 간접적 손해, 부수적 손해,
결과적 손해, 영업이익의 상실 또는 특별한 손해에 대하여 (주)마이크로소프트 또는 그 공급자들이 그 손해의 가능성을
통지받은 경우에도 아무런 책임을 지지 않습니다.경우에 따라서는 결과적 손해 또는 부수적 손해의 배제 또는 책임의 제한을
인정하지 않으므로 위와 같은 제한이 적용되지 않을 수도 있습니다.

저작권 (주)마이크로소프트 1994 - 2000.
728x90
728x90

내 장 함 수

설         명

  Abs(수)
  Abs(수식)

  절대값 구하기

  Array(배열1,배열2,.....)

  배열 반환

  Asc(문자열)

  문자의 ANSI 문자값 반환

  Atn(수)

  주어진 수를 아크탄젠트로 반환

  CBool(식)

  주어진 식을 Boolean(True 또는 False)형식으로 반환

  Cbyte(식)

  주어진 식을 Byte( 0~255 )형식으로 반환

  CCur(식)

  주어진 식을 Currency(통화:-922,337,203,685,477.5808~
  922,337,203,685,477.580)형식으로 반환

  CDate(날짜식)

  주어진 식을 Date(날짜)형식으로 반환

  CDbl(식)

  주어진 식을
  Double(-1.79769313486232E308~-4.94065645841247E-324
  및 4.94065645841247E-324~1.79769313486232E308)형식 반환

  Chr(ANSI문자코드)

  ANSI 문자코드를 일반문자로 반환

  CInt(식)

  주어진 식을 Interger(정수:-32,768~32,767)형식으로 반환

  CLng(식)

  주어진 식을 Long(-2,147,483,648~2,147,483,647)형식 반환

  Cos(수)

  주어진 수의 코사인 값을 반환

  CreateObject(클래스)

  다른 객체에 대한 참조를 만들어 반환

  CStr(식)

  주어진 식을 String(가변 길이 문자열의 경우 0개에서
  약 20억개까지의 문자)형식으로 반환

  Date()

  현재 날짜를 반환

  DateSerial(년,월,일)

  주어진 년,월,일의 Date(100년 1월 1일부터~9999년 12월 31일
  까지)형식을 반환

  Exp(수)

  주어진 수의 자연로그(e)를 반환

  Filter(검색문자열의1차원배열,검색문자열)
  Filter(검색문자열의1차원배열,검색문자열,Boolean)
  Filter(검색문자열의1차원배열,검색문자열,Boolean,
  비교형식의숫자값)

  지정한 필터로 문자열 배열 반환
  Boolean이 True면 검색문자 검색시 문자열 반환,
  False면 검색문자 미검색된 문자열 반한.

  Fix(수)

  주어진 수의 정수 반환

  FormatCurrency(수)
  FormatCurrency
  (수,NumDigitsAfterDecimal)
  FormatCurrency
  (수,NumDigitsAfterDecimal,IncludeLeadingDigit)
  FormatCurrency
  (수,NumDigitsAfterDecimal,IncludeLeadingDigit,
  UseParensForNegativeNumbers)
  FormatCurrency
  (수,NumDigitsAfterDecimal,IncludeLeadingDigit,
  UseParensForNegativeNumbers,GroupDigits)

  컴퓨터 규정의 통화값 반환

  FormatDateTime(날짜)
  FormatDateTime(날짜,날짜시간의숫자값)

  규정된 날짜와 시간으로 반환

  FormatNumber(수)
  FormatNumber
  (수,NumDigitsAfterDecimal)
  FormatNumber
  (수,NumDigitsAfterDecimal,IncludeLeadingDigit)
  FormatNumber
  (수,NumDigitsAfterDecimal,IncludeLeadingDigit,
  UseParensForNegativeNumbers)
  FormatNumber
  (수,NumDigitsAfterDecimal,IncludeLeadingDigit,
  UseParensForNegativeNumbers,GroupDigits)

  규정된 숫자로 반환

  FormatPercent(수)
  FormatPercent
  (수,NumDigitsAfterDecimal)
  FormatPercent
  (수,NumDigitsAfterDecimal,IncludeLeadingDigit)
  FormatPercent
  (수,NumDigitsAfterDecimal,IncludeLeadingDigit,
  UseParensForNegativeNumbers)
  FormatPercent
  (수,NumDigitsAfterDecimal,IncludeLeadingDigit,
  UseParensForNegativeNumbers,GroupDigits)

  규정된 퍼센트값을 반환

  Hex(수)

  주어진 수를 16진수 문자로 반환

  Hour(시간)

  0과 23사이의 시간으로 반환

  Inputbox(프롬프트)
  Inputbox(프롬프트,제목)
  Inputbox(프롬프트,제목,기본값)
  Inputbox(프롬프트,제목,기본값,xpos,ypos)
  Inputbox(프롬프트,제목,기본값,xpos,ypos,도움파일의URL,
  도움파일에서항목위치값)

  입력대화상자의 프롬프트를 생성

  InStr(문자열,찾을문자열)
  InStr(시작위치,문자열,찾을문자열,비교상수값)

  주어진 문자의 위치값을 반환

  InStrRev(문자열,찾을문자열)
  InStrRev(문자열,찾을문자열,시작위치,비교상수값)

  주어진 문자열의 위치값을 끝에서 부터 검색하여 반환

  Int(수)

  주어진 수의 정수값만 반환

  IsArray(변수)

  주어진 변수 배열여부를 Boolean값으로 반환

  IsDate(식)

  주어진 식이 날짜로 변환되는지를 Boolean값으로 반환

  IsEmpty(식)

  주어진 식의 변수가 초기화됐는지를 Boolean값으로 반환

  IsNull(식)

  주어진 식의 데이타 유효성을 Boolean값으로 반환

  IsNumberic(식)

  주어진 식의 값이 숫자화 될지 여부를 Boolean값으로 반환

  IsObject(식)

  자동화 객체를 참조하는지의 여부를 Boolean값으로 반환

  Join(목록)
  Join(목록,구분기호)

  배열에 포함된 여러 문자열을 결합하여 만든 문자열을 반환,
  구분기호 기본값은 공백(" ")이다.

  LBound(배열이름)
  LBound(배열이름,가장작은차원)

  주어진 배열에서 사용할 수 있는 가장 작은 첨자를 반환

  LCase(문자)

  주어진 문자를 소문자로 반환

  Left(문자열,수)

  주어진 문자열을 주어진 수만큼 문자를 반환

  Len(문자열)

  주어진 문자열의 문자갯수를 반환

  LoadPicture(그림파일명)

  그림 객체를 반환

  Log(자연로그)

  주어진 수의 자연로그를 반환

  LTime(문자열)

  주어진 문자열의 앞에 공백을 삭제하고 반환

  Mid(문자열,시작)
  Mid(문자열,시작,반환될길이)

  주어진 문자열에서 주어진 위치에서부터의 문자를 반환

  Minute(시간)

  시간에서 분값을 반환

  Month(날짜)

  달의 값을 반환

  MonthName(달)

  주어진 달의 수를 문자열로 반환

  MsgBox(프롬프트)
  MsgBox(프롬프트,단추)
  MsgBox(프롬프트,단추,제목)
  MsgBox(프롬프트,단추,제목,도움파일의URL,도움파일에서
  항목위치값)

  대화상자의 메세지를 생성

  Now()

  현재 날짜와 시간을 반환

  Oct(수)

  주어진 수의 8진수 값을 반환

  Replace(문자열,찾을문자열,바꿀문자열)
  Replace(문자열,찾을문자열,바꿀문자열,시작위치)
  Replace(문자열,찾을문자열,바꿀문자열,시작위치,바꿀횟수)
  Replace(문자열,찾을문자열,바꿀문자열,시작위치,바꿀횟수,
  바꿀비교형식)

  주어진 문자열의 주어진 문자를 바꾸어 반환

  Right(문자열,수)

  주어진 문자를 주어진 수만큼 오른쪽에서부터 반환

  Rnd()

  난수를 반환

  Round(수)

  주어진 수의 반올림 반환

  RTrim(문자열)

  주어진 문자열의 뒤 공백이 없는 문자을 반환

  ScriptEngine()

  사용 중인 스크립트 언어를 반환

  ScriptEngineBuildVersion()

  사용 중인 스크립트 언어의 버젼 수를 반환

  ScriptEngineMajorVersion()

  사용 중인 스크립트 언어의 주 버전 수를 반환

  ScriptEngineMinorVersion()

  사용 중인 스크립트 언어의 보조버전 수를 반환

  Second()

  시스템 시간의 초 값을 반환

  Sgn(수)

  주어진 수의 부호를 나타내는 정수를 반환

  Sin(수)

  주어진 수의 사인값을 반환

  Space(수)

  주어진 수만큼의 공백이포함된 문자열을 반환

  Split(문자열)
  Split(문자열,구분기호)
  Split(문자열,구분기호,반환문자열수)
  Split(문자열,구분기호,반환문자열수,바꿀비교형식)

  주어진 문자열이 포함된 1차 배열을 반환.
  구분기호 기본값은 공백(" ")이다

  Sqr(수)

  주어진 수의 제곱근을 반환

  StrComp(문자열,문자열)
  StrComp(문자열,문자열,비교형식)

  주어진 두 개의 문자열을 비교하여 결과값을 반환

  StrReverse(문자열)

  주어진 문자열을 뒤에서 부터 읽어서 반환

  String(수,문자열)

  주어진 문자가 주어진 수만큼 반복된 문자열을 반환

  Tan(수)

  주어진 각도의 탄젠트 값을 반환

  Time()

  현재 시간을 반환

  TimeSerial(시,분,초)

  주어진 시간의 시간,분,초에 대한 시간값을 반환

  TimeValue(시간)

  시간이 포함된 Date형식을 반환

  Trim(문자열)

  주어진 문자열의 앞,뒤 공백이 없는 문자열 반환

  TypeName(변수명)

  변수의 정보를 나타내는 문자열 반환

  UBound(배열명)
  UBound(배열명,가장큰차원)

  배열의 차원에서 가장 큰 첨자를 반환

  UCase(문자열)

  주어진 문자열을 대문자로 반환

  varType(변수명)

  변수의 형식을 나타내는 값을 반환

  Weekday(날짜)
  Weekday(날짜,주의첫째요일의숫자)

  요일을 나타내는 정수를 반환

  WeekdayName(요일)
  WeekdayName(날짜,주의첫째요일의숫자)

  요일을 나타내는 문자를 반환

  Year(1970표기날짜)

  현재의 연도를 반환

 
728x90

'Information' 카테고리의 다른 글

asp 속도업  (0) 2007.03.01
ASP에서 join과 split을 이용한 문자열 파싱(parsing)  (0) 2007.03.01
전월세계약 6가지 포인트  (0) 2007.02.28
728x90

join과 split는 문자열을 파싱(parsing)함에 있어 매우 유용한 함수들이다. 같단히 설명하자면, join은 하나의 일차원 배열의 내용을 하나의 문자열로 만드는 함수이고, split은 하나의 문자열 내용을 하나의 일차원 배열로 나누어 담는 함수이다.

join에 대한 문법은 다음과 같다:


join(list[, delimiter]) 


여기서 list는 문자열로 연결시킬 내용들이 들어 있는 배열을 나타낸다. Delimeter는 배열에 있는 요소들로부터 문자열을 만들 때 각 요소 사이에 들어갈 문자열을 의미한다. 이 값은 옵션으로 이것을 지정하지 않으면 내부적으로 빈 문자열(" ")로 처리된다. 이제 간단한 예를 한 번 살펴 보도록 하자.


Dim OneDimArray(5)
OneDimArray(0) = "Hello,"
OneDimArray(1) = "my"
OneDimArray(2) = "name"
OneDimArray(3) = "is"
OneDimArray(4) = "Daniel!"

Dim strSentence
strSentence = join(OneDimArray) 


위의 코드는 strSentence에 "Hello, my name is Daniel!"을 저장하게 된다. 만일 strSentence = join(OneDimArray) 부분을 strSentence = join(OneDimArray, ",") 부분으로 변경하면 strSentence에는 "Hello,,my,name,is,Daniel!"이 저장된다. 즉, 디리미터(delimeter, 구분자)는 앞의 경우 디폴트인 " " 이고, 후자의 경우는 ","인 것이다. 만일 배열의 각 요소를 하나의 문자열로 만들 때 각 요소 사이의 구분자가 없이 붙이고 싶을 경우는 단순히 strSentence = join(OneDimArray, "")라고 해주면 된다. 그 결과는 "Hello,mynameisDaniel!"이 될 것이다.


split은 join의 반대 결과를 만든다. split은 문자열을 취하여 문자열의 각 요소들을 적절한 기준으로 잘라 내 일차원 배열로 담아낸다. split의 문법은 다음과 같다:


split(String Expression[, delimiter[, count[, compare]]]) 


여기서 반드시 필요한 파라미터는 배열로 담을 문자열, Expression이다. Delimeter는 join과 마찬가지로 옵션이다. 디폴트는 " " 이다. count는 결과로 반환할 부분 문자열의 갯수이다. compare는 부분 문자열을 비교하는 방법을 결정한다. 이제 간단한 예를 한 번 살펴 보도록 하자.


Dim strSentence
strSentence = "Hello, my name is Daniel!"

Dim OneDimArray
OneDimArray = split(strSentence)
 


위의 코드는 strSentence에 담겨 있는 문자열을 OneDimArray란 일차원 배열의 각 요소에 "Hello,", "my", "name", "is", "Daniel!"을 저장한다. 만일 OneDimArray 배열에 3 요소만 저장하고 싶은 경우 count 파라미터를 이용하여 부분 문자열의 갯수를 정해주면 된다. 즉, OneDimArray = split(strSentence) 부분을 OneDimArray = split(strSentence, " ", 3)으로 변경시켜주면 된다. 이 결과는 "Hello,", "my", "name is Daniel!"이 된다. 만일 구분자로 컴마(,)를 사용하고 싶다면 OneDimArray = split(strSentence) 부분을 OneDimArray = split(strSentence, ",")로 변경시켜주면 된다. 이 결과는 "Hello", "my name is Daniel!"이 될 것이다.

앞에서도 언급했지만 join과 split은 서로 반대 관계이다. 예를 들어, 다음과 같은 코드를 보자.


Dim strSentence, strCopy
strSentence = "Hello, my name is Bob!"
strCopy = join(split(strSentence)) 


위의 코드에서 strCopy와 strSentence는 동일한 값을 갖는다.

지금까지 join과 split의 사용 방법에 대해 알아 보았다. 그렇다면 이 함수들은 언제 유용하게 사용될 수 있을까? 사실 ASP에서 문자열을 조작함에 있어 join과 split의 사용은 필수적이다. 하나의 예를 들기 위해 지난 시간에 살펴보았던 "AdRotator를 이용하여 배너 광고 로테이션 시키는 방법"에서 사용한 AdRotator.txt 파일을 살펴 보도록 하자. 그 파일에는 다음과 같은 형식의 데이터들이 저장되어 있다:


Advertiser Name
Advertiser URL
Advertiser Category
Banner ID
Comment
*
Advertiser Name
Advertiser URL
Advertiser Category
Banner ID
Comment
*
Advertiser Name
Advertiser URL
Advertiser Category
Banner ID
Comment
*

... 


이런 텍스트 파일을 이용하여 작업을 할 때 제일 먼저 하는 일은 FileSystemObject 객체를 이용하여 전체 텍스트 내용을 하나의 문자열로 읽어 들이는 것이다. 그 문자열을 str이란 변수로 담았다고 한다면 다음으로 할 일은 recArray = split(str, "*")을 해주는 것이다.

이렇게 함으로써 하나의 레코드 단위를 배열의 각 요소로 저장할 수가 있다. 마지막으로 레코드에 있는 각각의 요소를 얻으려면 elementArray = split(recArray(i), chr(13))이라고 해주면 된다. 여기서 chr(13)은 라인이 분리되어 있는 값을 의미한다.

이런 과정을 거침으로써 텍스트 파일의 내용을 적절히 파싱(parsing)을 할 수 있게 된다.

728x90

'Information' 카테고리의 다른 글

asp기본함수  (0) 2007.03.01
전월세계약 6가지 포인트  (0) 2007.02.28
정규식  (0) 2007.02.27

+ Recent posts