ストアドプロシージャの呼び出し
public bool CallSP(string queryString, object paramNames, object paramValues)
CallSP は、ストアドプロシージャを呼び出します。成功した場合はtrue を返し、そうでない場合はfalse を返します。各パラメータの名前と値のペアを2つの配列としてCallSP に渡すことができます。これは、多くのパラメータとXML 集計の操作で役立ちます。この場合、CallSP のクエリ文字列引数は、パラメータの名前でなければなりません。以下に例を示します。
CallSP("GetAttachment",nameArray,valueArray)次の例は、ストアドプロシージャ呼び出しに入力を渡し、任意の出力パラメータを反復処理する方法を示しています。
Dim nameArray
nameArray = Array("GivenName", "BusinessAddress_City")
Dim valueArray
valueArray = Array("Jon Doe", "Raleigh")
Dim module As New ExcelComModule
module.SetProviderName ("Exchange")
module.SetConnectionString ("User='[email protected]';Password='myPassword';Server='https://outlook.office365.com/EWS/Exchange.asmx';Platform='Exchange_Online';Schema='EWS';")
Query = "INSERT INTO Contacts (GivenName, BusinessAddress_City) VALUES (@GivenName, @BusinessAddress_City)"
If module.Insert(Query, nameArray, valueArray) Then
MsgBox "The insertion was successful."
Else
MsgBox "The insertion failed."
End If
module.Close
Dim module As New ExcelComModule
module.SetProviderName ("Exchange")
module.SetConnectionString ("User='[email protected]';Password='myPassword';Server='https://outlook.office365.com/EWS/Exchange.asmx';Platform='Exchange_Online';Schema='EWS';")
Dim nameArray
nameArray = Array("AttachmentId")
Dim valueArray
valueArray = Array("AQMkAGRlMWQ5MDg0...")
StoredProc = "GetAttachment"
Cursor = Application.Cursor
Application.Cursor = xlWait
If module.CallSP(StoredProc, nameArray, valueArray) Then
MsgBox "Execution was successful."
Dim ColumnCount As Integer
ColumnCount = module.GetColumnCount
For Count = 0 To ColumnCount - 1
Application.ActiveSheet.Cells(1, Count + 1).Value = module.GetColumnName(Count)
Next
Dim RowIndex As Integer
RowIndex = 10
While (Not module.EOF)
For columnIndex = 0 To ColumnCount - 1
If Conversion.CInt(module.GetColumnType(columnIndex)) = Conversion.CInt(vbDate) And Not IsNull(module.GetValue(columnIndex)) Then
Application.ActiveSheet.Cells(RowIndex, columnIndex + 1).Value = Conversion.CDate(module.GetValue(columnIndex))
Else
Application.ActiveSheet.Cells(RowIndex, columnIndex + 1).Value = module.GetValue(columnIndex)
End If
Next
module.MoveNext
RowIndex = RowIndex + 1
Wend
Else
MsgBox "Execution failed."
End If
Application.Cursor = Cursor
module.Close