Excel Add-In for SAP HANA XSA

Build 23.0.8839

データの変更

VBA からの接続 を完了したら、マクロからSAP HANA XSA を更新できます。次のセクションでは、パラメータ化されたクエリを実行してデータを更新する方法について説明します。完全なマクロについては、パラメータ化されたクエリの実行 を参照してください。

Insert

Insert メソッドを呼び出して、SQL INSERT ステートメントを実行します。
public bool Insert(string queryString, object paramNames, object paramValues)

Insert メソッドはステートメント実行の成功または失敗を示すboolean を返し、 次のパラメータを受け入れます。

queryString実行するクエリ。例:INSERT INTO SampleTable (Column1) VALUES ('John')
paramNamesクエリで使用される名前付きパラメータを含む配列。パラメータクエリを使用する場合は、必須。
paramValuesパラメータ名に対応する値を含む配列。パラメータクエリを使用する場合は、必須。

次の例では、パラメータ配列で指定された値を挿入し、INSERT の成功または失敗を示すメッセージボックスを表示します。

Dim nameArray
nameArray = Array("Column1", "Column2")
Dim valueArray
valueArray = Array("Jon Doe", "Bob")
Dim module As New ExcelComModule
module.SetProviderName ("SAPHanaXSA")
module.SetConnectionString ("User=MyUser;Password=MyPassword;URL=https://hxehost:51027/euro.xsodata;")
Query = "INSERT INTO SampleTable (Column1, Column2) VALUES (@Column1, @Column2)"
If module.Insert(Query, nameArray, valueArray) Then
  MsgBox "The insertion was successful."
  'lastInsertedRowIdentity = GetLastInsertedRowIdentity(module)
  'MsgBox lastInsertedRowIdentity
Else
  MsgBox "The insertion failed."
End If
module.Close

挿入に成功し、SCOPE_IDENTITY() がSAP HANA XSA プロバイダーでサポートされている場合、以下のVBA 関数例を呼び出して、最後に挿入された行のId を取得することができます。

Function GetLastInsertedRowIdentity(module) As String
  Dim lastInsertedRowIdentity As String
  lastInsertedRowIdentity = ""
  If module.Select("SELECT SCOPE_IDENTITY()", prmNames, prmValues) Then
    lastInsertedRowIdentity = module.GetColumnValue(0)
  End If
  GetLastInsertedRowIdentity = lastInsertedRowIdentity
End Function

Delete

Delete メソッドを呼び出して、SQL DELETE ステートメントを実行します。
public bool Delete(string queryString, object paramNames, object paramValues)

Delete メソッドはクエリの成功または失敗を示すboolean を返し、次のパラメータを受け入れます。

queryString実行するクエリ。例:SELECT Id, Column1 FROM SampleTable WHERE Column2 = 'Bob'
paramNamesクエリで使用される名前付きパラメータを含む配列。パラメータクエリを使用する場合は、必須。
paramValuesパラメータ名に対応する値を含む配列。パラメータクエリを使用する場合は、必須。

次の例では、キーで指定されたレコードを削除し、削除の成功または失敗を示すメッセージボックスを表示します。

Dim module As New ExcelComModule
module.SetProviderName ("SAPHanaXSA")
module.SetConnectionString("User=MyUser;Password=MyPassword;URL=https://hxehost:51027/euro.xsodata;")
Dim nameArray
nameArray = Array("Id")
Dim valueArray
valueArray = Array("6")
Query = "DELETE FROM SampleTable WHERE Id='6'"
If module.Delete(Query,nameArray,valueArray) Then
  MsgBox "The delete was successful."
Else
  MsgBox "The delete failed."
End If 
module.Close

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 23.0.8839