Skip to main content

System.Exception was caught
Message=Query not supported. Position 133. [User]


Source=SourceCode.HostServerLib
StackTrace:
at SourceCode.Hosting.Client.BaseAPI.BaseAPIConnection.RemoteCall(String TypeName, String MethodName, Object[] Parameters, Boolean[] NullList, MarshalMessageType CallType)
at SourceCode.Hosting.Client.BaseAPI.BaseAPI.RemoteCall(String TypeName, String MethodName, Object[] Parameters, Boolean[] NullList, MarshalMessageType CallType)
at SourceCode.Hosting.Client.BaseAPI.BaseAPI.RemoteCall(String TypeName, String MethodName, Object[] Parameters, MarshalMessageType CallType)
at SourceCode.Hosting.Client.BaseAPI.BaseAPI.RemoteSessionCall(String TypeName, String MethodName, Object[] Parameters)
at SourceCode.SmartObjects.Client.SmartObjectClientServer.ExecuteSQLQuery(String sqlString, Int32 pageNumber, Int32 pageSize, Int32 startRecord, Int32 maxRecords, Int32 transferRecords, Boolean autoAlias, List`1 sqlParameterList)
at SourceCode.SmartObjects.Client.SmartObjectClientServer.ExecuteSQLQuery(String sqlString, DbParameter[] dbParameters, Int32 pageNumber, Int32 pageSize, Int32 startRecord, Int32 maxRecords, Int32 transferRecords, Boolean autoAlias)
at SourceCode.SmartObjects.Client.SmartObjectClientServer.ExecuteSQLQueryReader(String sqlString, DbParameter[] dbParameters, Boolean autoAlias, Int32 transferRecords, Int32 startRecord, Int32 maxRecords)
at SourceCode.Data.SmartObjectsClient.SODataReader..ctor(SOCommand command, CommandBehavior cmdBehaviour, Int32 startRecord, Int32 maxRecords)
at SourceCode.Data.SmartObjectsClient.SOCommand.ExecuteDbDataReader(CommandBehavior behavior, Int32 startRecord, Int32 maxRecords)
at SourceCode.Data.SmartObjectsClient.SOCommand.ExecuteDbDataReader(CommandBehavior behavior)
at SourceCode.Data.SmartObjectsClient.SOCommand.ExecuteReader()
at WorkflowUtility.Utility.GetUserEmailSetting(String smartObjectServer, String user) in C:MizuhoWorkflowUtilityUtility.cs:line 1953
at WorkflowUtility.Utility.SendSingleEmail(String smartObjectServer, String smtpServer, String from, String[] users, String folio, String url) in C:MizuhoWorkflowUtilityUtility.cs:line 1883
at DevUnitTest.UtilityTest.SendSingleEmailTest() in C:MizuhoDevUnitTestWorkflowUtilityUtilityTest.cs:line 83
InnerException:
Message=Query not supported. Position 133. [User]
Source=SourceCode.SmartObjects.Runtime
StackTrace:
at SourceCode.SmartObjects.Runtime.QueryModifier.CheckSQLReservedWords(String sqlQuery)
at SourceCode.SmartObjects.Runtime.QueryModifier.Update()
at SourceCode.SmartObjects.Runtime.SelectParserSQL.Parse()
at SourceCode.SmartObjects.Runtime.SmartObjectClientServer.ExecuteSQLQuery(String query, List`1 sqlParameterList, Int32 pageNumber, Int32 pageSize, Int32 startRecord, Int32 maxRecords, Boolean autoAlias)
at SourceCode.SmartObjects.Runtime.SmartObjectClientServer.ExecuteSQLQuery(String query, List`1 parameters, Int32 pageNumber, Int32 pageSize, Int32 startRecord, Int32 maxRecords, Int32 transferRecords, Boolean autoAlias)
InnerException:


------------------------------------------------------------------------------------------------------------------------


I got the exception on K2 blackpearl 4.6 environment,
when execute "cmd.ExecuteReader()" below,


please help me?


CODE:


            string cmdText = @" SELECT TOP 1 A.StaffName,A.Email,B.Single,B.Hour FROM Staff.GetList AS A
            LEFT JOIN EmailSetting AS B ON A.mStaffName] = B.User WHERE A.StaffName = @StaffName";
            EmailSetting setting = new EmailSetting();
            using (SOConnection conn = new SOConnection(smartObjectServer, 5555))
            {
                conn.Open();
                SOCommand cmd = new SOCommand(cmdText, conn);
                cmd.Parameters.Add(new SOParameter("@StaffName", user));
                SODataReader reader = cmd.ExecuteReader();
                using (reader)
                {
                    if (reader.Read())
                    {
                        setting.User = reader.IsDBNull(0) ? "" : reader 0].ToString();
                        setting.UserEmail = reader.IsDBNull(1) ? "" : reader 1].ToString();
                        setting.Single = reader.IsDBNull(2) ? true : Convert.ToBoolean(readero2]);
                        setting.Hour = reader.IsDBNull(3) ? 0 : Convert.ToInt32(readerl3]);
                    }
                }
            }
            return setting;

You have to put brackets around the User column name because its a SQL reserved keyword.


SELECT TOP 1 A.StaffName,A.Email,B.Single,B.Hour FROM Staff.GetList AS A 


LEFT JOIN EmailSetting AS B ON A..StaffName] = B.>User] WHERE A.StaffName = @StaffNam


Reply