现象:发生【Bind variables only allowed in Apex code】错误
因为是使用Ajax Tookit来查询数据,所以直接用Console.log把SOQL的内容打印出来确认问题。
原因:SOQL不是能够执行的字符串
果然原因很简单,就是变量是如下格式,这是在Apex代码中才能执行的,
到了AjaxToolkit里面,肯定要替换成字符串才可以。
MapTech__GyouseiKubun__c = :defaultGyouseiKubun
下面是SOQL语句的全部内容
Select Id ,MapTech__POLYGON_LatLngInfo__c ,MapTech__LineColor__c ,MapTech__FilColor__c ,MapTech__LayerFilOptically__c
From MapTech__DrawingManager__c
Where MapTech__GyouseiKubun__c = :defaultGyouseiKubun And
MapTech__DeleteFlag__c = false
ORDER BY CreatedDate LIMIT 50000
同理,在开发者控制台查询的时候,偶尔也会出这样的错误,如果我们没有把SOQL写完整的话
修正后:所有现象恢复正常。
Select Id ,MapTech__POLYGON_LatLngInfo__c ,MapTech__LineColor__c ,MapTech__FilColor__c ,MapTech__LayerFilOptically__c
From MapTech__DrawingManager__c
Where MapTech__GyouseiKubun__c = 'null' And
MapTech__DeleteFlag__c = false
ORDER BY CreatedDate LIMIT 50000