zoukankan      html  css  js  c++  java
  • Salesforce: 简析Database.Query, Database.getQueryLocator, Database.countQuery

    我们有时候根据需求,需要编写动态的SOQl语句,这个时候我们就需要用到Database.Query, Database.getQueryLocator以及Database.countQuery

    1. Database.query

    运行时它将作为SOQL查询执行并返回单个sObject或sObject List

    sObject so = Database.query('SELECT Id FROM Account Limit 1');

    List<sObject> sobjList = Database.query('SELECT Id FROM Account');

    2. Database.countQuery

    有时我们需要统计动态SOQL查询返回的记录总数。在这种情况下Database.countQuery可以使用。它将以Integer格式返回count

    Integer totalAccounts = Database.countQuery('SELECT count() FROM Account');

    它不能用于field properties的Aggregate results。例如以下代码,它将抛出错误消息"System.QueryException: Use query() for non-count queries"

    Integer totalAccounts = Database.countQuery('SELECT count(id) FROM Account');

    另外,Database.countquery 最多只返回50000条记录。如果它有超过50000条记录,它会抛出错误"Too many query rows: 50001 from with count()".

    3. Database.getQueryLocator

    它在运行时将返回一个Query Locator, 它主要使用在batch中,或者在VF中通过分页显示一个large sets.

    Query locator最多可以返回5000万条记录,通常用来处理大数据。

    Database.getQueryLocator('SELECT Id FROM Account');

  • 相关阅读:
    为什么不应该使用ZooKeeper做服务发现
    Python 练习 人事管理
    Python 爬取 妹子图(技术是无罪的)
    Python 爬取 书籍
    Python 爬取 豆瓣
    Python 爬取 房天下
    Python 爬取 煎蛋
    Python 爬取 拉钩
    Python 爬取 猫眼
    家具专区网
  • 原文地址:https://www.cnblogs.com/clsriz/p/15038668.html
Copyright © 2011-2022 走看看