首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用变量对象创建动态SOQL查询

使用变量对象创建动态SOQL查询
EN

Stack Overflow用户
提问于 2015-06-08 20:30:39
回答 3查看 14.3K关注 0票数 0

我正在尝试使用变量对象执行动态soql查询。在我的visualforce页面中,我有两个顶点:selectlist,第一个包含一个对象列表,当我从这个列表中选择一个对象时,我刷新第二个列表以显示所选对象的字段。顶端:inputText包含要在选定字段中搜索的文本。

视觉力代码:

代码语言:javascript
复制
<apex:selectList id="listObjects" value="{!selectedObject}" size="1">
    <apex:selectOptions value="{!allObjetcs}"></apex:selectOptions>
</apex:SelectList> 
<apex:selectList id="listFields" value="{!selectedField}" size="1">
    <apex:selectOptions value="{!allFields}"></apex:selectOptions>
</apex:SelectList> 
<label>Text to search : </label><apex:inputText id="textResearch" value="{!textResearch}" /> 
<button id="searchButton" type="button">{!$Label.SEARCH}</button> 

顶点代码:

代码语言:javascript
复制
public void search() {
        result = new List<SearchWrapper>();
        System.debug('>>>>>> ALK - in search ');
        String query = 'Select Id, ' + selectedField + ' from ' + selectedObject + ' where ' + selectedField + ' like \'%' + textResearch + '\'%';
        System.debug('>>>>>> ALK - Query : ' + query);
        List<sObject> = (sObject) Database.query(query);

}

请告诉我如何强制转换Database.query(查询)以及如何执行此动态查询。

谢谢大家。

EN

回答 3

Stack Overflow用户

发布于 2015-06-09 12:32:24

如果在查询中使用局部变量,则必须在其前面加上':‘。如下所示:

代码语言:javascript
复制
String value = 'test';
List<something> result = [select id from something where name = :value];
票数 0
EN

Stack Overflow用户

发布于 2015-06-10 04:36:05

试试下面的代码。如果字段列表如果是多选,则可能需要遍历selectedField变量并形成一个由逗号分隔的字段名称字符串。

代码语言:javascript
复制
String query = 'select '+String.valueOf(selectedField)+' From '+selectedObject+' WHERE Name = \'' + textResearch+'\'';
List<sObject> recordList = Database.query(query);
票数 0
EN

Stack Overflow用户

发布于 2015-06-11 23:16:40

代码语言:javascript
复制
public void search() {
    result = new List<SearchWrapper>();
    String query = 'Select ' + selectedField + ' from ' + selectedObject + ' where ' + selectedField + ' like \'%' + textResearch + '%\'';
    System.debug('>>>>>> Query : ' + query);
    List<sObject> l = Database.query(query);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30709237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档