[ASP] xmlhttp 를 이용해서 다른 서버의 DB 를 쿼리해서 RecordSet 객체로 가져오는법

Website 세상/Web Program 2008. 10. 22.
[ASP] xmlhttp 를 이용해서 다른 서버의 DB 를 쿼리해서 RecordSet 객체로 가져오는법

다른 서버의 DB연결 정보를 모르는 상태에서도 DB를 쿼리해 올수 있는 방법입니다.
물론 해당 DB가 접근 가능한 서버에 DB쿼리를 담당하는 소스가 있어야 하구요.

원리는 아래와 같습니다.
DB를 접근할 수 없는 서버측 (서버A) 에서 xmlhttp로 DB가 접근가능한 서버(서버B) 에 있는 Dbconn.asp를 쿼리문을 주면서 호출하면 Dbconn.asp는 해당 DB에 있는 데이터를 쿼리한다음 XML로 변환하여 Response로 부립니다.

서버 A에서 xmlHttp로 연결하였기때문에 response에서 생성된 데이터를 String형태로 가져 올수 있습니다.
가져운 String를 ADODB.Stream객체로 변환후 다시 Recordset로 변환...^^

DTest.asp  -해당 DB가 접근하지 않는 서버에서 실행

<%
"" Response.Charset="euc-kr"

Dim QryStr
"" QryStr = " select idx, Iname, Iorder"
"" QryStr = QryStr & "   from Tcategory "
"''" QryStr = QryStr & "  where mco = '000' "
"" QryStr = QryStr & "  order by art_order "

Dim Http, sXML
"" Set Http = server.CreateObject("Microsoft.XMLHTTP")
""" Http.Open "GET", "http://localhost/Dbconn.asp?QryStr"=" & QryStr, False
Http.Send

sXML = Replace(Http.responseText, vbNewLine, vbNullString)

Set Http = Nothing

   Dim oStream
""    Set oStream = Server.CreateObject("ADODB.Stream")
   oStream.Open
'    oStream.WriteText sXML   'Give the XML string to the ADO Stream

'    oStream.Position = 0    'Set the stream position to the start

   Dim oRecordset
""    Set oRecordset = Server.CreateObject("ADODB.RecordSet")
  
'    oRecordset.Open oStream    'Open a recordset from the stream

   oStream.Close
   Set oStream = Nothing

response.Write oRecordSet.recordcount

Set oRecordset = Nothing

%>



Dbconn.asp - 해당 DB 가 접근 가능한 서버측에 심어두어야 함.

<%
Option Explicit

""Response.ContentType = "text/xml"

Dim ObjADORS, QryStr,DB_DSN
Const adPersistXML = 1
""QryStr = Request("QryStr")
""DB_DSN = "Provider=sqloleDB;Data Source=MyDBSvrIP;Initial Catalog=MyDBName;User ID=myUser;Password=myPwd;"

""Set ObjADORS = Server.CreateObject("ADODB.Recordset")

ObjADORS.Open QryStr, DB_DSN

ObjADORS.Save Response, adPersistXML

ObjADORS.Close
Set ObjADORS = Nothing

%>

[ASP] xmlhttp 를 이용해서 다른 서버의 DB 를 쿼리해서 RecordSet 객체로 가져오는법 - IT감리, IT컨설팅, 웹컨설팅, 웹에이전시, 웹솔루션개발, ERP, SCM, CRM, ToTb, 홈페이지제작, 웹사이트 제작, 온라인 마케팅, 시스템구축, 유지보수, 운영대행 등
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기