본문 바로가기
웹프로그램

asp와 저장프로시저 사용하기

by 세이박스 2008. 10. 8.
반응형
그냥 제가 아는 간단한 범위에서 사용법을 정리합니다.

간단하게 고객의 고유번호를 가져와서 뿌려주는 asp문구를 살펴보면

sql = "select num from member_table"
Set Rs = Server.CreateObject("ADODB.RecordSet")
Rs.open(sql),Cn,1,1

while Rs.EOF =false
response.wirte rs(0) & "
"
Rs.movenext
wend
Rs.close
Set Rs = nothing


이렇게 된다.한줄씩 떨어뜨리면서 고객의 고유번호를 찍어내지요

그럼 이것을 저장 프로시저로 쓰려면,
EM을 열어서 저장프로시저를 클릭후 마우스 오른쪽 버튼으로 새 저장 프로시저 를 클릭하여 새롭게 하나 저장프로시저를 만듭니다.

CREATE PROCEDURE [dbo].[sp_text] AS
sql = "select num from member_table"

이렇게 sql문 앞에 프로시저 이름을 넣어줍니다. EM에서 저장을 하고 마무리 합니다.

그리고 나서 위에 문장을 asp 페이지에서 다시 쓰면

sql = "exec sp_text"
Set Rs = Server.CreateObject("ADODB.RecordSet")
Rs.open(sql),Cn,1,1

while Rs.EOF =false
response.wirte rs(0) & "
"
Rs.movenext
wend
Rs.close
Set Rs = nothing

이러면 간단하게 돌아가는 것을 알수 있습니다.
위에 실행과 아래에 적은 실행의 차이점은 sql문의 차이이고, 그걸 asp페이지에다가 쓰느냐 아니면 sql서버에 등재시키느냐 그차이점이지요


보통 sql은 어떤 변수를 받아서 그것을 토대로 sql문을 돌리지요
그럼 번호 3번인 사람의 이름을 뽑아내는 저장프로시저를 만들면

CREATE PROCEDURE [dbo].[sp_text]
@num int
AS
sql = "select name from member_table where num = @num"

이렇게 만들수가 있지요

그럼 asp 페이지에서는 다음과 같이 씁니다.
num = request.form("num")
sql = "exec sp_text @num=" & num
Set Rs = Server.CreateObject("ADODB.RecordSet")
Rs.open(sql),Cn,1,1
response.wirte rs(0) & "
"

그럼 마찬가지로 변수를 넘겨주는것을 확인할수 있습니다.
콤마를 사용해서 변수를 여러개를 붙일수있습니다.

CREATE PROCEDURE [dbo].[sp_text]
@num int,
@aaa int
AS
sql = "select name from member_table where num = @num and aaa=@aaa"

이것의 asp 페이지에서 sql문은
sql = "exec sp_text @num=" & num & ",@aaa=1"

이상입니다.
매우 간단한 저장 프로시저였습니다요~
반응형