-
[ASP] MSSQL사용하기개발/ASP 2018. 1. 23. 18:39
ASP에서 MSSQL 서버의 데이터를 처리하는 법!
태오 http://taeyo.net/Columns/View.aspx?SEQ=224&PSEQ=15&IDX=7 사이트를 정리해봤습니다!
이론
ODBC (Open Database Connectivity)
예전의 데이터베이스들은 폐쇄적이었기 때문에, 데이터베이스 자체에서 제공하는 클라이언트가 없으면 데이터베이스 서버로 접근할 수 없었다. ODBC는 DSN을 이용해 데이터베이스로의 접근을 가능하게 만드는, 일종의 웹과 특정 데이터베이스의 연결통로 역할을 한다.
UDA (Universal Data Access)
ADO와 OLEDB를 사용하여 광범위한 데이터들에 접근하고 처리할 수 있는 기술을 UDA (Universal Data Access) 라고 한다.
ODBC는 이기종의 관계형 데이터베이스만 접근할 수 있는 반면에, OLEDB는 비관계형 데이터(메일폴더, 텍스트, 디렉토리, 웹사이트 등)에도 접근할 수 있다.
ADO - 데이터를 다루는 개체
ODBC, OLEDB - 데이터의 제공자(연결통로)
예시
ODBC
Dim adoCn
Set adoCn = Server.CreateObject("ADODB.Connection")
adoCn.open "DSN=MySQLDB;uid=xx;pwd=xx"
//미리 셋팅한 ODBC의 DSN의 값을 사용한다.
OLEDB
Dim adoCn, str
Set adoCn = Server.CreateObject("ADODB.Connection")
str = "Provider=SQLOLEDB;Data Source=(local);Initial Catalog=pubs;User ID=xx;password=xx;"
adoCn.open str
OLEDB 설명)
Provider : SQL서버 사용시, SQLOLEDB
Data Source : 데이터베이스 서버가 설치된 서버의 이름 또는 IP
Initial Catalog : 데이터베이스 서버 안에 존재하는 데이터베이스 이름
User ID, password : 계정정보
Persist Security Info : 기본설정은 false, true또는 yes로 설정하면 연결이 열린 다음에 사용자 ID 및 암호 같은 보안 관련 정보를 얻을 수 있다.
데이터베이스 연결
SET oConn = Server.CreateObject("ADODB.Connection")
oConn.open "Provider=SQLOLEDB.1;Password=?;Persist Security Info=True;User ID=?;Initial Catalog=?;Data Source=?"
oConn.CursorLocation = 3
oConn.CommandTimeout = 120
데이터베이스 연결 해제
IF IsObject(oConn) Then
IF oConn.state = 1 THEN
oConn.close
END IF
Set oConn = Nothing
END IF
db실행 1
Set objCmd = Server.CreateObject("ADODB.Command")
Set oRs = Server.CreateObject("ADODB.RecordSet")
With objCmd
.ActiveConnection = oConn
.CommandText = "dbo.프로시저명"
.CommandType = adCmdStoredProc
.Parameters.Append .CreateParameter("@userid",adVarChar,adParamInput, 40, "hjkvnm")
.Parameters.Append .CreateParameter("@pw",adInteger,adParamInput, 4, 11)
End With
Set oRs = objCmd.Execute
If Not oRs.Eof Or Not oRs.Bof Then
ResultCd = oRs("RESULTCODE")
End If
oRs.Close
set ors = Nothing
set objcmd = nothing
*
with
end
여러 문장에 걸쳐 동일한 객체의 문장이 있을때,
db 실행 2-실행(insert, update, delete)
oConn.excute(sql)
db 실행 3-조회(select)
Set oRs = Server.CreateObject("ADODB.RecordSet")
oRs.Open sql, oConn, 3
if not(ors.eof or ors.bof) then
arrrows = ors.getrows()
end if
*
getrows() 메소드
RecordSet 객체의 레코드들을 이차원 배열로 복사한다.
Dim arrows = objRecordSet.GetRows([rows],[start],[fields])
[rows] 가져올 레코드 수
[start] 몇번째 레코드부터 가져올 건지.
[fields] 필드이름, 필드이름이 담긴 배열, 숫자가 가능함.
'개발 > ASP' 카테고리의 다른 글
[ASP] asp 환경변수 (0) 2018.01.23