다음을 통해 공유


명명된 명령으로 매개 변수 전달

명령의 결과가 명명된 명령의 out 변수로 전달되는 것처럼 매개 변수가 있는 명령에 대한 매개 변수는 명명된 명령에 in 변수로 전달할 수 있습니다.

다음 코드 예제에서는 CustomerID가 Northwind 데이터베이스에서 “ALKFI”인 고객이 주문한 모든 주문을 검색하려고 시도합니다. CustomerID의 값은 명명된 명령이 호출되는 시점에 제공됩니다.

Const DS = "MySqlServer"  
Const DB = "Northwind"  
Const DP = "SQLOLEDB"  
  
Dim objConn As New ADODB.Connection  
Dim objRs As New ADODB.Recordset  
Dim objComm As New ADODB.Command  
  
CommandText = "SELECT OrderID, OrderDate, " & _  
                     "RequiredDate, ShippedDate " & _  
                     "FROM Orders " & _  
                     "WHERE CustomerID = ? " & _  
                     "ORDER BY OrderID"  
  
ConnectionString = "Provider=" & DP & _  
                   ";Data Source=" & DS & _  
                   ";Initial Catalog=" & DB & _  
                   ";Integrated Security=SSPI;"  
  
' Connect to the data source.  
objConn.Open ConnectionString  
  
' Set a named command.  
objComm.CommandText = CommandText  
objComm.CommandType = adCmdText  
objComm.Name = "GetOrdersOf"  
Set objComm.ActiveConnection = objConn  
  
' Call the named command, passing a CustomerID value  
' as the input parameter.   
'    "ALFKI" is the required input parameter,  
'    objRs is the resultant output variable.  
objConn.GetOrdersOf "ALKFI", objRs  
  
' Display the result.  
Debug.Print "All orders by ALFKI:"  
Do While Not objRs.EOF  
    Debug.Print vbTab & objRs(0) & vbTab & objRs(1) & vbTab & _  
                objRs(2) & vbTab & objRs(3)  
    objRs.MoveNext  
Loop  
  
' Clean up.  
objRs.Close  
objConn.Close  
Set objRs = Nothing  
Set objConn = Nothing  
Set objComm = Nothing  

모든 입력 매개 변수가 출력 변수 앞에 와야 하며 매개 변수의 데이터 형식이 일치하거나 해당 필드의 매개 변수로 변환될 수 있습니다. 다음 명령문-

objConn.GetOrdersOf 12345, objRs  

-필요한 입력 매개 변수가 Integer 형식이 아닌 String 형식이므로 일치하지 않는 데이터 형식의 오류가 발생합니다.

다음 호출-

objConn.GetOrdersOf "12345", objRs  

-유효하지만 데이터베이스에 이러한 레코드가 없으므로 빈 결과 집합을 생성합니다.

참고 항목

연결 개체(ADO)