本頁是否能提供幫助?
您對此內容的意見反應十分重要。 請告訴我們您的想法。
其他意見反應?
剩餘 1500 個字元
匯出 (0) 列印
全部展開

table 物件

更新日期: 2015年2月

提供用以處理特定資料表的功能。

del(itemOrId, options)
從資料表中刪除指定的 itemID

參數

名稱 類型 引數 說明

itemOrId

物件

要刪除的項目

選項

回呼參數

insert(item, options)
將指定的 item 插入資料表中。

參數

名稱 類型 引數 說明

項目

物件

要插入的項目

選項

回呼參數

orderBy(arg1, arg2, …)
傳回 Query 物件執行個體,代表依據提供的資料行名稱引數以遞增順序排序的查詢。

參數

名稱 類型 引數 說明

Arg1

字串

排序所依據的主要資料行

Arg2

字串

選擇性,因為還有更多的資料行名稱

排序所依據的下一個資料行

orderByDescending(arg1, arg2, …)
傳回 Query 物件執行個體,代表依據提供的資料行名稱引數以遞減順序排序的查詢。

參數

名稱 類型 引數 說明

Arg1

字串

排序所依據的主要資料行

Arg2

字串

選擇性,因為還有更多的資料行名稱

排序所依據的下一個資料行

Read(options)
從資料表讀取所有資料並傳入結果陣列以叫用由 options 參數指定的 success 處理常式。

Important重要事項
切勿對未限制大小的資料表呼叫 read 方法。

參數

名稱 類型 引數 說明

選項

回呼參數

select(string)
傳回已套用所要求之 string 投射的 Query 物件執行個體。

參數

名稱 類型 引數 說明

字串

以逗號分隔的字串清單

要傳回的資料行名稱 (以單引號括住並以逗點分隔)

select(function)
傳回已套用所要求之 string 投射的 Query 物件執行個體。

參數

名稱 類型 引數 說明

函數

函數

傳回已套用所要求之 function 投射的 Query 物件執行個體。在函數定義中,this 關鍵字可存取一個資料列,點運算子可存取一個資料行,而 JavaScript 函數可以套用至兩者。

skip(recordCount)
傳回已略過前 recordCount 筆記錄的 Query 物件執行個體。

參數

名稱 類型 引數 說明

recordCount

整數

要略過的記錄數目

take(recordCount)
傳回將會傳回 recordCount 筆記錄的 Query 物件執行個體。

參數

名稱 類型 引數 說明

recordCount

整數

要傳回的記錄數目

where(object)
傳回已根據所提供的 JSON object 屬性值進行篩選的 Query 物件執行個體。

參數

名稱 類型 引數 說明

物件

物件

具有要篩選之屬性值的 JSON 物件

where(function)
傳回已根據所提供的 function 進行篩選的 Query 物件執行個體。

參數

名稱 類型 引數 說明

函數

函數

傳回已套用所要求之 function 篩選的 Query 物件執行個體。在函數定義中,this 關鍵字可存取一個資料列,點運算子可存取一個資料行,而 JavaScript 函數可以套用至兩者。

update(item, options)
將指定的 item 插入資料表中。

參數

名稱 類型 引數 說明

項目

物件

要插入的項目

選項

回呼函數

insertupdatedel 方法都接受 options 物件,此物件可能定義了成功或錯誤處理常式。

查詢方法 (orderByorderByDescendingselectskiptakewhere) 全都是傳回 Query 物件。此物件公開如前所述的各種方法,讓您可將查詢撰寫成一連串的方法呼叫。

這裡有一些範例:

  1. 會傳回所選資料行的投射查詢

  2. Where 篩選

  3. 包含篩選的 TSQL 程式碼

此指令碼示範如何執行只會傳回所選資料行的投射查詢。read 參數顯示 options 參數的編碼方式。

    var tableName = tables.getTable("TodoItem");
    console.log("table name is " + tableName);
    tableName.select('text', 'complete')
        .read(
            { success: function(results) {
                if (results.length > 0) {
                    console.log(results);
                } else {
                    console.log('no results returned');
                }
            }
        });;

下列指令碼呼叫 where 方法,根據提供的物件值篩選傳回的資料列。若至少傳回一筆記錄,即假設使用者具有提交訂單的必要權限故而執行插入作業,否則將傳回錯誤。

function insert(item, user, request) {
    var permissionsTable = tables.getTable('permissions');

    permissionsTable.where({
        userId: user.userId,
        permission: 'submit order'
    }).read({
        success: function(results) {
            if (results.length > 0) {
                // Permission record was found. Continue normal execution.
                request.execute();
            } else {
                console.log('User %s attempted to submit an order without permissions.', user.userId);
                request.respond(statusCodes.FORBIDDEN, 'You do not have permission to submit orders.');
            }
        }
    });
}

這個範例示範如何使用函數參數呼叫 select

    tableName.select(function() { return this.id.substring(2,5) })
    .read(
        { success: function(results) { 
                if (results.length > 0) {
                    console.log(results);
                } else {
                    console.log('no results returned');
                }
            }});

以下取自於排定工作的函式會執行 Transact-SQL 傳回重複的資料列,然後使用 del 方法移除重複項目。

function cleanup_channels() {
    var sql = "SELECT MAX(Id) as Id, Uri FROM Channel " + 
        "GROUP BY Uri HAVING COUNT(*) > 1";
    var channelTable = tables.getTable('Channel');

    mssql.query(sql, {
        success: function(results) {
            if (results.length > 0) {
                for (var i = 0; i < results.length; i++) {
                    channelTable.del(results[i].Id);
                    console.log('Deleted duplicate channel:' + 
                    results[i].Uri);
                }
            } else {
                console.log('No duplicate rows found.');
            }
        }
    });
}

顯示:
© 2015 Microsoft