ODBC Driver for Workday

Build 22.0.8479

パラメータ化されたステートメント

次のコード例は、パラメータをバインドしてパラメータ化されたステートメントを作成する方法を示します。

シングルユース ステートメント

query メソッドは、クエリパラメータを値にバインドするための追加配列パラメータを受け入れます。

db.open("...", (err) => {
     db.query(
        "SELECT Worker_Reference_WID, Legal_Name_Last_Name FROM [CData].[Human_Resources].Workers WHERE Legal_Name_Last_Name = ?",
        ["Morgan"],
        (err, rows, moreRows) => {
        for (var i = 0; i < rows.length; i++) {
            console.log("Worker_Reference_WID = " + rows["Worker_Reference_WID"]);
            console.log("Legal_Name_Last_Name = " + rows["Legal_Name_Last_Name"]);
        }

        if (!moreRows) {
            console.log("All rows have been processed");
        }
    });
});

リユーザブル ステートメント

prepare メソッドは、プリペアドODBCStatement オブジェクトを作成します。これは、複数のexecute およびexecuteNonQuery 呼び出しで再利用できます。

ODBCStatement を実行すると、コールバックは結果のフェッチに使用されるODBCResult オブジェクトを受け取ります。すべての結果を一度に配列にフェッチするために使用することも、一度に1行ずつフェッチすることもできます。

db.open("...", (err) => {
    db.prepare(
        "SELECT Worker_Reference_WID, Legal_Name_Last_Name FROM [CData].[Human_Resources].Workers WHERE Legal_Name_Last_Name = ?",
        (err, stmt) => {
        function printData(result, done) {
            result.fetch((err, row) => {
                if (row === null) done();

                console.log("Worker_Reference_WID = " + row["Worker_Reference_WID"]);
                console.log("Legal_Name_Last_Name = " + row["Legal_Name_Last_Name"]);
                printData(result);
            }
        }

        stmt.executeQuery("Morgan 1", (err, result) => {
            printData(result, () => {
                stmt.executeQuery("Morgan 2", (err, result) => {
                    printData(result);
                });
            });
        });
    });
});

Copyright (c) 2023 CData Software, Inc. - All rights reserved.
Build 22.0.8479