Error in client and not in Developer

Hi,
I have a really enoying problem at the moment. When using the client via the developer enviroment I do not receive any errors. After importing the solution into a production server inviroment with the same data,database and connector. I receive the following error.

Version info
Servoy 5.2.4
Java 1.6.0_23
Mysql

I know the query is good because if I cut and paste the query from the error console it executes with out problem. I have never seen a problem that does not show up in both Developer and Client ??, some help would be greatly appreciated.

Java Web Start 1.6.0_23
Using JRE version 1.6.0_23-b05 Java HotSpot(TM) Client VM
User home directory = C:\Documents and Settings\proutley
----------------------------------------------------
c:   clear console window
f:   finalize objects on finalization queue
g:   garbage collect
h:   display this help message
m:   print memory usage
o:   trigger logging
p:   reload proxy configuration
q:   hide console
r:   reload policy configuration
s:   dump system and deployment properties
t:   dump thread list
v:   dump thread stack
0-5: set trace level to <n>
----------------------------------------------------
Log plugin initialized
Registering Free IT2BE Component runtime licenses for Worldview IT
rep_list->popMenu()

SELECT sales_rep.display_name AS sales_rep_display_name, sales_rep.sales_repid AS sales_rep_sales_repid, sales_rep.sales_level_type AS sales_rep_sales_level_type  FROM sales_rep sales_rep  WHERE sales_rep.sales_level_type = ?  OR sales_rep.sales_level_type = ?  OR sales_rep.sales_level_type = ?  ORDER BY sales_rep.display_name ASC
ERROR - Debug                      - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'sales_rep.sales_level_type = 1.0ORDER BY sales_rep.display_name ASC' at line 1
org.mozilla.javascript.WrappedException: Wrapped java.lang.RuntimeException: com.servoy.j2db.dataprocessing.DataException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'sales_rep.sales_level_type = 1.0ORDER BY sales_rep.display_name ASC' at line 1 (getRepDataset#585)
	at org.mozilla.javascript.Context.throwAsScriptRuntimeEx(Context.java:1828)
	at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:199)
	at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:353)
	at org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:81)
	at org.mozilla.javascript.gen.c40._c0(getRepDataset:585)
	at org.mozilla.javascript.gen.c40.call(getRepDataset)
	at org.mozilla.javascript.optimizer.OptRuntime.callName0(OptRuntime.java:101)
	at org.mozilla.javascript.gen.c34._c0(onRecordSelection:1102)
	at org.mozilla.javascript.gen.c34.call(onRecordSelection)
	at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:458)
	at com.servoy.j2db.FormController.executeFunction(FormController.java:3977)
	at com.servoy.j2db.FormController.executeFormMethod(FormController.java:4291)
	at com.servoy.j2db.FormController.executeOnRecordSelect(FormController.java:4229)
	at com.servoy.j2db.FormController.refreshAllPartRenderers(FormController.java:2185)
	at com.servoy.j2db.FormController.valueChanged(FormController.java:2252)
	at com.servoy.j2db.FormController.notifyVisible(FormController.java:3021)
	at com.servoy.j2db.smart.dataui.FormLookupPanel.notifyVisible(FormLookupPanel.java:215)
	at com.servoy.j2db.smart.dataui.SpecialTabPanel.stateChanged(SpecialTabPanel.java:383)
	at javax.swing.JTabbedPane.fireStateChanged(Unknown Source)
	at javax.swing.JTabbedPane$ModelListener.stateChanged(Unknown Source)
	at javax.swing.DefaultSingleSelectionModel.fireStateChanged(Unknown Source)
	at javax.swing.DefaultSingleSelectionModel.setSelectedIndex(Unknown Source)
	at javax.swing.JTabbedPane.setSelectedIndexImpl(Unknown Source)
	at javax.swing.JTabbedPane.setSelectedIndex(Unknown Source)
	at com.servoy.j2db.smart.dataui.SpecialTabPanel.js_setTabIndex(SpecialTabPanel.java:871)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:179)
	at org.mozilla.javascript.JavaMembers.put(JavaMembers.java:178)
	at org.mozilla.javascript.NativeJavaObject.put(NativeJavaObject.java:141)
	at org.mozilla.javascript.ScriptableObject.putProperty(ScriptableObject.java:1768)
	at org.mozilla.javascript.ScriptRuntime.setObjectProp(ScriptRuntime.java:1532)
	at org.mozilla.javascript.ScriptRuntime.setObjectProp(ScriptRuntime.java:1520)
	at org.mozilla.javascript.gen.c30._c0(showDataEntry:108)
	at org.mozilla.javascript.gen.c30.call(showDataEntry)
	at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:65)
	at org.mozilla.javascript.gen.c29._c0(showDetails:1456)
	at org.mozilla.javascript.gen.c29.call(showDetails)
	at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:65)
	at org.mozilla.javascript.gen.c26._c0(popMenuActions:523)
	at org.mozilla.javascript.gen.c26.call(popMenuActions)
	at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:387)
	at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3127)
	at org.mozilla.javascript.gen.c26.call(popMenuActions)
	at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:458)
	at com.servoy.j2db.FormController.executeFunction(FormController.java:3977)
	at com.servoy.j2db.FormController.executeFunction(FormController.java:3858)
	at com.servoy.j2db.plugins.ClientPluginAccessProvider$MethodExecutor.run(ClientPluginAccessProvider.java:548)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.RuntimeException: com.servoy.j2db.dataprocessing.DataException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'sales_rep.sales_level_type = 1.0ORDER BY sales_rep.display_name ASC' at line 1
	at com.servoy.j2db.dataprocessing.JSDatabaseManager.js_getDataSetByQuery(JSDatabaseManager.java:793)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:179)
	... 56 more
Caused by: com.servoy.j2db.dataprocessing.DataException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'sales_rep.sales_level_type = 1.0ORDER BY sales_rep.display_name ASC' at line 1
	at com.servoy.j2db.dblayer.Zb.Za(Zb.java:155)
	at com.servoy.j2db.server.Zc.Zo.Za(Zo.java:335)
	at com.servoy.j2db.dataprocessing.Zu.Za(Zu.java:808)
	at com.servoy.j2db.dataprocessing.Zu.Za(Zu.java:301)
	at com.servoy.j2db.dataprocessing.Zu.performCustomQuery(Zu.java:806)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
	at sun.rmi.transport.Transport$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.rmi.transport.Transport.serviceCall(Unknown Source)
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
	at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown Source)
	at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
	at sun.rmi.server.UnicastRef.invoke(Unknown Source)
	at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(Unknown Source)
	at java.rmi.server.RemoteObjectInvocationHandler.invoke(Unknown Source)
	at $Proxy7.performCustomQuery(Unknown Source)
	at com.servoy.j2db.dataprocessing.FoundSetManager.getDataSetByQuery(FoundSetManager.java:1641)
	at com.servoy.j2db.dataprocessing.JSDatabaseManager.js_getDataSetByQuery(JSDatabaseManager.java:788)
	... 61 more

I think I found it.?

If I fire the method in question via button on the form No problems, but if it is fired by onRecordSelection of the same form it throws the above error, but only in Client. btw it worked fine version 3.5. I can’t see what hase changed. Below is the method triggered.

function getRepDataset()
{
var vQuery = "SELECT \
sales_rep.display_name AS sales_rep_display_name, \
sales_rep.sales_repid AS sales_rep_sales_repid, \
sales_rep.sales_level_type AS sales_rep_sales_level_type \
FROM \
sales_rep sales_rep \
WHERE \
sales_rep.sales_level_type = ? \
OR sales_rep.sales_level_type = ? \
ORDER BY \
sales_rep.display_name ASC"

var args = new Array();
args[0] = 2
args[1] = 1
var vDataset = databaseManager.getDataSetByQuery(currentcontroller.getServerName(), vQuery,args,-1);
application.setValueListItems('vlRepList',vDataset) //populate valuelist

application.output('Dataset passed to Value List: ')
application.output(vDataset.getAsText(',','\n','"',true))

}

Phillip,

That is strange indeed.
Try adding some space at the beginning of the lines, just before the start of the sql code:

var vQuery = "SELECT \
  sales_rep.display_name AS sales_rep_display_name, \
  sales_rep.sales_repid AS sales_rep_sales_repid, \
  sales_rep.sales_level_type AS sales_rep_sales_level_type \
  FROM \
  sales_rep sales_rep \
  WHERE \
  sales_rep.sales_level_type = ? \
  OR sales_rep.sales_level_type = ? \
  ORDER BY \
  sales_rep.display_name ASC"

Rob

Hi Rob,

Well the spaces have done the trick ???, thankyou for your help. But it does beg the question
’ why does this problem only show up in the client version on a server only environment and not through Developer’ What is the difference ?

that is i think because in the developer you are running in interpreted/debug mode
and in the the smart client it gets compiled, i guess when they compile it you get slightly different behavior in this area.