バッチ処理
CData ODBC Driver for Amazon Athena は、ODBC Batch API を介してAmazon Athena で一括ロードをサポートします。本製品 は、関連するSQL データ操作ステートメントを1つのバルクAPI 要求に変換することによって同時に実行できます。アプリケーションのコードでは、本製品 は一連の入力とパラメータ化されたクエリに基づいてステートメントを実行します。
バッチ更新プロシージャ
バッチ更新を実行するには、次の手順を実行してください。
- ステートメント内の各パラメータのカラム値の配列を定義します。
- SQL_ATTR_PARAMSET_SIZE ステートメント属性を設定します。
- 各配列を各パラメータにバインドします。
- パラメータ化されたステートメントを実行します。
一括挿入
次のコードは、SQLSetStmtAttr、SQLBindParameter、およびSQLExecDirect を使って一括挿入を実行する方法を示します。
SQLHSTMT pHstmt = NULL;
const int MAX_INSERT_COUNT = 2;
const int MAX_BUFFER_SIZE = 100;
char TotalDueArray[MAX_INSERT_COUNT][MAX_BUFFER_SIZE] = { 0 };
SQLLEN cbTotalDueArray[MAX_INSERT_COUNT] = { 0 };
...
retcode = SQLSetStmtAttr(pHstmt, SQL_ATTR_PARAMSET_SIZE, (SQLPOINTER)MAX_INSERT_COUNT, 0);
char *TotalDue1 = "Jon Doe", *TotalDue2 = "'John', 4";
cbTotalDueArray[0] = strlen(TotalDue1);
cbTotalDueArray[1] = strlen(TotalDue2);
memcpy(TotalDueArray[0], TotalDue1, strlen(TotalDue1));
memcpy(TotalDueArray[1], TotalDue2, strlen(TotalDue2));
retcode = SQLBindParameter(pHstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, 0, 0, TotalDueArray, MAX_BUFFER_SIZE, cbTotalDueArray);
retcode = SQLExecDirect(pHstmt, (SQLCHAR*) "INSERT INTO [AwsDataCatalog].[sampledb].Customers (TotalDue) VALUES (?)", SQL_NTS);