You need to sign in to do that
Don't have an account?
System.QueryException: unexpected token: <EOF> Error is in expression '{!go}' in component <apex:commandButton> in page dynamicvf: Class.Dyanmic1.go: line 24, column 1 Class.Dyanmic1.go: line 24, column 1
I am getting this error ,while i was fetching data from Account sobject using dynamic query based on option selected by the user.
**********************************************************************Apex class ****************************************************************************
public class Dyanmic1 {
public List<SelectOption> options {set;get;}
public List<String> selected {set;get;}
public List<Account> accounts {set;get;}
public Dyanmic1(){
options = new List<SelectOption>();
selected = new List<String>();
accounts = new List<Account>();
List<String> fields = new List<String>{'Name','Industry','Rating','Phone'};
for(String s : fields){
SelectOption sop = new SelectOption(s,s);
options.add(sop);
}
}
public void go(){
String query= 'Select ID';
for(String s: selected){
query = query+','+ s ;
}
query = query+'FROM Account';
accounts = Database.query(query);
}
}
*************************************************************VF Page*******************************************************************************
<apex:page controller="Dyanmic1">
<apex:form>
<apex:selectList multiSelect="true" value="{!selected}" >
<apex:selectOptions value="{!options}" />
</apex:selectList>
<apex:commandButton value="Go" action ="{!go}"/>
<apex:pageBlock>
<apex:dataTable value="{!accounts}" var="a">
<apex:repeat value="{!selected}" var="f">
<apex:column value="{!a[f]}"/>
</apex:repeat>
</apex:dataTable>
</apex:pageBlock>
</apex:form>
</apex:page>
***********************************************************************************************
Please help.
Thanks in advance,
Venkat.
**********************************************************************Apex class ****************************************************************************
public class Dyanmic1 {
public List<SelectOption> options {set;get;}
public List<String> selected {set;get;}
public List<Account> accounts {set;get;}
public Dyanmic1(){
options = new List<SelectOption>();
selected = new List<String>();
accounts = new List<Account>();
List<String> fields = new List<String>{'Name','Industry','Rating','Phone'};
for(String s : fields){
SelectOption sop = new SelectOption(s,s);
options.add(sop);
}
}
public void go(){
String query= 'Select ID';
for(String s: selected){
query = query+','+ s ;
}
query = query+'FROM Account';
accounts = Database.query(query);
}
}
*************************************************************VF Page*******************************************************************************
<apex:page controller="Dyanmic1">
<apex:form>
<apex:selectList multiSelect="true" value="{!selected}" >
<apex:selectOptions value="{!options}" />
</apex:selectList>
<apex:commandButton value="Go" action ="{!go}"/>
<apex:pageBlock>
<apex:dataTable value="{!accounts}" var="a">
<apex:repeat value="{!selected}" var="f">
<apex:column value="{!a[f]}"/>
</apex:repeat>
</apex:dataTable>
</apex:pageBlock>
</apex:form>
</apex:page>
***********************************************************************************************
Please help.
Thanks in advance,
Venkat.
I got solution ,
I forgot to give space infront of FROM account.
Now I gave space,it resolved my issue.
All Answers
I got solution ,
I forgot to give space infront of FROM account.
Now I gave space,it resolved my issue.
I was also done the same mistake. I don't give space in front of 'FROM' keyword. Thanks @VenkataRamanjaneyulu Kattamuru
Thankyou all,