3

如何使用查询从表中获取一些项目?我使用 WindowsAzureMobileServices.framework(iOS 应用程序)。

如果你能写一些例子,我将非常感激。我认为它应该类似于 MySQL 查询,但我无法正确创建它们(总是结果 = NULL,但数据在那里)。

self.authService = [AuthService getInstance];
MSTable *imagesTable = [self.authService.client tableWithName:@"images"];

[imagesTable readWithQueryString:@"" completion:^(NSArray *items, NSInteger totalCount, NSError *error) {
        NSLog(@"%@",items);
}];

谢谢

4

1 回答 1

4

在 Windows Azure 移动服务中,您可以通过两种方式进行查询:通过 REST API 或通过自定义 API。

通过 REST API 查询:

GET 动词支持符合开放数据协议 (OData)的 URI 参数。这些参数允许您指定过滤器、顺序、投影、分页和其他功能。该查询不是基于 SQL 语法,而是基于 OData 语法,该语法是为以 REST 样式服务的实体量身定制的。

这在查询记录操作中有记录,您将在 iOS 的移动服务 SDK 中以自动化测试的形式找到示例:请参阅MSQueryTests.m

例如,这个示例代码:

-(void)testMSQueryInitWithSimplePredicate
{    
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name == 'bob'"];

    query = [[MSQuery alloc] initWithTable:table predicate:predicate];
    STAssertTrue([query.description
                  isEqualToString:@"$filter=(name%20eq%20'bob')&$inlinecount=none"],
                 @"OData query string was: %@",
                 query.description);
}

How to use the iOS client library for Mobile Services中也有这个例子:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"complete == NO"];
[table readWithPredicate:predicate completion:^(NSArray *items, NSInteger totalCount, NSError *error) {
    //loop through our results
}];

通过自定义 API 查询:

您可以编写自己的函数,在服务器上运行,获取所需的任何参数,执行所需的任何查询和处理,并返回任何结果集。这些功能非常灵活。

有关如何开发这些功能的信息,请参阅Azure 移动服务中的自定义 API

要了解如何从 iOS 调用这些自定义函数,请参阅Azure 移动服务中的自定义 API – 客户端 SDK以及此答案

于 2013-07-08T20:18:46.813 回答