导出 (0) 打印
全部展开

mssql 对象

更新时间: 2013年8月

使你能够直接使用 Transact-SQL 代码来处理 SQL Database 中的表。

可以用在所有各种服务器脚本中:

  1. 表操作,例如,insertupdatereaddel

  2. 计划程序脚本;以及

  3. 自定义 API。

mssql 对象具有以下方法:

  • query

  • queryRaw

  • open

执行由 TSQL 字符串指定的查询;结果将返回到 options 对象上的 success 回调。如果 params 参数存在,则此查询可以包括参数。

mssql.query(sql, params, options)

 

Parameter 说明

sql

要执行的 TSQL 字符串。? 占位符(如果存在)将替换为 params 数组的内容。

params

替换 sql 字符串中的 ? 占位符。

options

success 和可选的 error 回调函数(请参阅备注以了解详情)。

执行由 TSQL 字符串指定的查询;结果将返回到 options 对象上的 success 回调。如果 params 参数存在,则此查询可以包括参数。返回的结果采用“原始”格式。

“原始”格式是一种 JSON 格式,它由一个 metadata 部分后跟一个 rows 部分组成:前一个部分描述结果集的列,后一个部分包含多个行元素(其中每个元素对于结果集中的每列都具有一个条目)。有关示例,请参阅在移动服务中使用服务器脚本

mssql.queryRaw(sql, params, options)

 

Parameter 说明

sql

要执行的 TSQL 字符串。? 占位符(如果存在)将替换为 params 数组的内容。

params

替换 sql 字符串中的 ? 占位符。

options

success 和可选的 error 回调函数(请参阅备注以了解详情)。

打开与移动服务 SQL Database 的连接。该连接将作为参数返回到 success 处理程序。然后,你可以对 connection 对象调用以下函数:closequeryRawquerybeginTransactioncommitrollback

mssql.open(options)

 

Parameter 说明

options

success 和可选的 error 回调函数(请参阅备注以了解详情)。

 

语法 说明

{ success:function(results) {…..}, error:function() { … }}

success 函数对 SQL Database 上的操作结果的访问。error 函数是可选的。

此对象的所有三个方法都使用 options 参数,该参数包含两个回调函数:success 函数和可选的 error 函数。

success 函数采用 results 参数:此函数是你可以处理 SQL Database 操作结果的位置。

可选的 error 函数用于在 Azure 移动服务已提供的默认级别之上进行错误恢复。

当与数据库的连接断开或者查询不正确时,可能发生故障。默认情况下,当出现错误时,服务脚本将错误记入日志并且将错误结果写入响应。因为移动服务提供默认的错误处理,所以你不必处理服务中可能发生的错误。

如果你希望获得特定的补偿行为,或者在你想要使用全局 console 对象将更详细信息写入日志,则可以通过实现显式错误处理来覆盖默认的错误处理。

有关详细信息,请参阅在移动服务中使用服务器脚本

以下查询可以是任何一种服务器脚本的一部分。它没有参数,并从 statusupdate 函数的 results 参数中的 success 表返回三个记录。

   mssql.query('select top 3 * from statusupdates', {
      success: function(results) {
         console.log(results);
      },
      error: function(err) {
                console.log("error is: " + err);
      }
   });

以下示例通过从 permissions 表读取每个请求用户的权限,在插入脚本中实现自定义授权。执行此查询时,TSQL 字符串中的占位符 ? 替换为所提供的参数,此参数是传入的 user 参数的 userID 字段。

function insert(item, user, request) {
    var sql = "SELECT _id FROM permissions WHERE userId = ? AND permission = 'submit order'";
    mssql.query(sql, [user.userId], {
        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.');
            }
        },
        error: function(err) {
           console.log("error is: " + err);
        }
    });
}

显示:
© 2014 Microsoft