ACTIVE SERVER PAGE > Command - Attribute
등록일 : 2017-07-04 17:05
조회수 : 93,009
Command 개체의 속성에는 어떤것들이 있을까요...
예제를 보면서 하나씩 속성을 알아보도록 하겠습니다.
5.7.1 ActiveConnection 속성
AdcmdUnknown = 8
adCmdText = 1
AdcmdTable = 2
adCmdStoredProc = 4
adCmdFile = 100
AdcmdTableDirect = 200
Set objCnn = Server.CreateObject("ADODB.Connection")
objCnn.Open ("Provider=SQLOLEDB;User ID=sa;Password=;Initial Catalog=test;Data Source=MOBBIE-ANKYU")
Set Cmd=Server.CreateObject("ADODB.Command")
set Cmd.ActiveConnection=objCnn
Cmd.CommandText="select * from board"
Cmd.CommandType=adcmdtext
set objCmd=Cmd.execute
do until objCmd.eof
response.write objCmd("title")&"
"
objCmd.movenext
loop
objCmd.close
objCnn.close
위의 예제는 board 테이블에서 레코드를 가지고 오는 예제 입니다.
여기에서는 ActiveConnection 속성만을 보고 넘어가도록 하겠습니다.
ActiveConnection 속성은 현재의 Command 개체가 속해있는 Connection 개체를 나타냅니다. 이속성은
연결을 위한 정보를 문자열로 지정하거나, Connection 개체를 지정합니다.
위의 예제에서는 objCnn 즉, Connection 개체를 지정했습니다.
5.7.2 CommandText 속성
CommandText 속성은 Provider를 통해서 실행할 명령어(sql문장,테이블명,저장프로시져명)를 지정하는 속성입니다.
기본값은 길이가 없는 문자열입니다.
5.7.1 예제에서는 "select * from board"와 같이 sql문장을 입력해 넣었습니다.
만약 저장 프로시져를 사용하고 싶으면 프로시져 이름을 넣으시면 됩니다.
<%
Set objCnn = Server.CreateObject("ADODB.Connection")
Set Cmd=Server.CreateObject("ADODB.Command")
Set objPara=Server.CreateObject("ADODB.parameter")
objCnn.Open ("Provider=SQLOLEDB;User ID=sa;Password=;Initial Catalog=pubs;Data Source=MOBBIE-ANKYU")
set Cmd.ActiveConnection=objCnn
Cmd.CommandText="byroyalty"
Cmd.CommandType=adcmdStoredProc
Cmd.CommandTimeout=15
objPara.type=adInteger
objPara.size=3
objPara.direction=adParamInput
objPara.value=100
cmd.parameters.append objPara
set objCmd=Cmd.execute
do until objCmd.eof
response.write objCmd(0)&"
"
objCmd.movenext
loop
objCmd.close
objCnn.close
%>
위의 예제는 pubs 데이타베이스에 있는 byroyalty 라는 프로시져를 사용한 예 입니다.
위의 예제에서는 commandText 에 프로시져 이름을 넣어서 이 프로시져를 사용한 예입니다. 이 프로시져는
파라메타의 값이 필요하므로 , parameter 인스턴스를 생성해서 parameter 컬렉션을 사용했습니다.
여기에서는 parameter가 중요한게 아니기 때문에, 이쯤해서 넘어가구요, parameter는 나중에 다시 자세히
알아보도록 하겠습니다.
5.7.3 CommandTimeout 속성
위의 예제를 보시면 CommandTimeOut 속성이 있습니다. 이 속성은 명령어가 결과를 반환할 때까지를 대기하는
시간을 나타냅니다. 기본값은 30초로 되었습니다.
만약 이 시간을 0으로 지정하게 되면 무한대로 결과를 기다리게 됩니다.
Connection 개체에도 CommandTimeout 속성이 있지만, Command 개체의 이 속성과는 아무런 관계가 없습니다.
5.7.4 CommandType 속성
CommandType 속성은 Command 개체의 형식을 나타냅니다.
즉, CommandText의 문자열이 SQL문장,프로시져, 테이블명, 인지를 결정하게 됩니다.
위의 예제에서 adcmdStoredProc를 지정했기때문에 프로시져로 지정된것이며, 처음 예제처럼 adcmdtext로 지정되었으니,
명령어나 또는 프로시져로 인식이 되는 것입니다.
CommandType 의 상수값은 6가지가 있습니다 아래 표를 보시면 쉽게 이해가 가실것 같네요.
| CommandType 속성의 개체형식 |
| 상수 |
값 |
설 명 |
adCmdUnknown
adCmdText
adCmdTable
adCmdStoredProc
adCmdFile
adCmdTableDirect |
8
1
2
4
256
512 |
디폴트값, Command 개체의 타입을 알수 없음으로 지정
명령어 또는 저장 프로시져를 텍스트로 지정함.
테이블을 지정한다.(내부적인 sql문장에 의해 필드가 생성됨)
저장프로시져를 지정한다.
Persisted Recordset 개체의 파일명 지정.
테이블을 지정(모든 필드) |
5.7.5 Properties 속성
<%
Set objCnn = Server.CreateObject("ADODB.Connection")
Set Cmd=Server.CreateObject("ADODB.Command")
Set objPara=Server.CreateObject("ADODB.parameter")
objCnn.Open ("Provider=SQLOLEDB;User ID=sa;Password=;Initial Catalog=pubs;Data Source=MOBBIE-ANKYU")
strCmd="select * from board"
cmd.activeConnection=objCnn
cmd.commandtext=strCmd
for i=0 to Cmd.properties.count-1
response.write cmd.properties(i).name&":"&cmd.properties(i).value&"
"
next
objCnn.close
%>
위의 예제를 함 실행해 보세요.
Command 개체의 peoperties 값들이 어떤것들이 있는지 확인하실수 있습니다.
Command 개체의 속성은 위의 속성들 말고도 여러가지가 있지만, 더 자세한 내용은 전문서적을 참고하시기 바랍니다.
그럼, 다음에는 메서드들에 대해서 살펴보도록 하겠습니다.