Execute, Requery 및 Clear 메서드 예제(VBScript)
이 예제에서는 Command 개체와 Connection 개체에서 실행할 때 Execute 메서드를 보여 줍니다. 또한 Requery 메서드를 사용하여 레코드 집합현재 데이터를 검색하고 Clear 메서드를 사용하여 Errors 컬렉션의 내용을 지웁니다. 이 프로시저를 실행하려면 ExecuteCommand 및 PrintOutput 프로시저가 필요합니다.
ASP(Active Server Page)에서 다음 예제를 사용합니다. 이 완벽하게 작동하는 예제를 보려면 C:\Program Files\Microsoft Platform SDK\Samples\DataAccess\Rds\RDSTest\advworks.mdb 있는 데이터 원본 AdvWorks.mdb(SDK 샘플과 함께 설치됨)가 있거나 이 파일의 실제 위치를 반영하도록 예제 코드의 경로를 편집해야 합니다. Microsoft Access 데이터베이스 파일입니다.
찾기 사용하여 Adovbs.inc 파일을 찾아 사용하려는 디렉터리에 배치합니다. 다음 코드를 잘라내어 메모장이나 다른 텍스트 편집기에 붙여넣고 ExecuteVBS.asp저장합니다. 모든 클라이언트 브라우저에서 결과를 볼 수 있습니다.
<!-- BeginExecuteVBS -->
<%@ Language=VBScript %>
<% ' use this meta tag instead of ADOVBS.inc%>
<!-- METADATA TYPE="typelib" uuid="00000205-0000-0010-8000-00AA006D2EA4" -->
<HTML>
<HEAD>
<META name="VI60_DefaultClientScript" content=VBScript>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<title>ADO Execute Method</title>
<STYLE>
<!--
BODY {
font-family: 'Verdana','Arial','Helvetica',sans-serif;
BACKGROUND-COLOR:white;
COLOR:black;
}
.thead {
background-color: #008080;
font-family: 'Verdana','Arial','Helvetica',sans-serif;
font-size: x-small;
color: white;
}
.thead2 {
background-color: #800000;
font-family: 'Verdana','Arial','Helvetica',sans-serif;
font-size: x-small;
color: white;
}
.tbody {
text-align: center;
background-color: #f7efde;
font-family: 'Verdana','Arial','Helvetica',sans-serif;
font-size: x-small;
}
-->
</STYLE>
</HEAD>
<BODY>
<H3>ADO Execute Method</H3>
<HR>
<H4>Recordset Retrieved Using Connection Object</H4>
<!--- Recordsets retrieved using Execute method of Connection and Command Objects-->
<%
' connection, command and recordset variables
Dim Cnxn, strCnxn
Dim rsCustomers, strSQLCustomers
Dim Cmd
Dim rsProducts, strSQLProducts
' create and open connection
Set Cnxn = Server.CreateObject("ADODB.Connection")
strCnxn="Provider='sqloledb';Data Source=" & _
Request.ServerVariables("SERVER_NAME") & ";" & _
"Integrated Security='SSPI';Initial Catalog='Northwind';"
Cnxn.Open strCnxn
' create and open recordset
Set rsCustomers = Server.CreateObject("ADODB.Recordset")
strSQLCustomers = "Customers"
rsCustomers.Open strSQLCustomers, Cnxn, adOpenKeyset, adLockOptimistic, adCmdTable
'1st Recordset using Connection - Execute
Set rsCustomers = Cnxn.Execute(strSQLCustomers)
Set Cmd = Server.CreateObject("ADODB.Command")
Cmd.ActiveConnection = Cnxn
strSQLProducts = "SELECT * From Products"
Cmd.CommandText = strSQLProducts
'2nd Recordset Cmd - execute
Set rsProducts = Cmd.Execute
%>
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=0 ALIGN=CENTER>
<!-- BEGIN column header row for Customer Table-->
<TR CLASS=thead>
<TH>Company Name</TH>
<TH>Contact Name</TH>
<TH>City</TH>
</TR>
<!--Display ADO Data from Customer Table-->
<%
Do While Not rsCustomers.EOF %>
<TR CLASS=tbody>
<TD>
<%= rsCustomers("CompanyName")%>
</TD>
<TD>
<%= rsCustomers("ContactName") %>
</TD>
<TD>
<%= rsCustomers("City")%>
</TD>
</TR>
<%
rsCustomers.MoveNext
Loop
%>
</TABLE>
<HR>
<H4>Recordset Retrieved Using Command Object</H4>
<TABLE CELLPADDING=5 BORDER=0 ALIGN=CENTER WIDTH="80%">
<!-- BEGIN column header row for Product List Table-->
<TR CLASS=thead2>
<TH>Product Name</TH>
<TH>Unit Price</TH>
</TR>
<!-- Display ADO Data Product List-->
<% Do Until rsProducts.EOF %>
<TR CLASS=tbody>
<TD>
<%= rsProducts("ProductName")%>
</TD>
<TD>
<%= rsProducts("UnitPrice")%>
</TD>
<%
rsProducts.MoveNext
Loop
' clean up
If rsCustomers.State = adStateOpen then
rsCustomers.Close
End If
If rsProducts.State = adStateOpen then
rsProducts.Close
End If
If Cnxn.State = adStateOpen then
Cnxn.Close
End If
Set Cmd = Nothing
Set rsCustomers = Nothing
Set rsProducts = Nothing
Set Cnxn = Nothing
%>
</TABLE>
</BODY>
</HTML>
<!-- EndExecuteVBS -->
참고 항목
ADO(Clear 메서드)
ADO(Command 개체)
ADO(Connection Object)
오류 개체
ADO(Errors Collection)
Execute 메서드(ADO 명령)
Execute 메서드(ADO 연결)
ADO(Recordset 개체)
Requery 메서드