Scheduler render_sql sample with Java and Oracle

I can’t seem to get my sample app working. When I go to the /events.do url, all my data fields come up null in the generated xml.

Here is the connector code I have set up:

/*

  • Copyright © 2009 - DHTMLX, All rights reserved
    */
    import java.sql.Connection;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.dhtmlx.connector.ConnectorServlet;
import com.dhtmlx.connector.DBType;
import com.dhtmlx.connector.SchedulerConnector;
import com.dhtmlx.connector.ThreadSafeConnectorServlet;

// TODO: Auto-generated Javadoc
/**

  • The Class SchedulerBasicConnector.
    */
    public class Scheduler_BasicConnector extends ThreadSafeConnectorServlet {

    /* (non-Javadoc)

    • @see com.dhtmlx.connector.ConnectorServlet#configure()
      */

    protected void configure(HttpServletRequest req, HttpServletResponse res) {

     Connection conn= ( new DataBaseConnection()).getConnection();
     SchedulerConnector c = new SchedulerConnector(conn,DBType.Oracle);
     c.servlet(req,res);
     c.render_sql("select classes.guid as event_id,classes.startdate as start_date, classes.enddate as end_date, courses.coursename  as event_name, courses.description as details from classes inner join courses on CLASSES.COURSEGUID =courses.guid  where courses.guid = '842'", "event_id", "start_date,end_date,event_name,details","","");
    

    }

}

Hi,

We use servlet to get the data from the database.
Below is the code snippet which will be helpful for you.

// code snippet to load the data in the scheduler.
scheduler.load("<%=request.getContextPath()%>/simpleServlet?uid="+ scheduler.uid());

public class SimpleServlet extends HttpServlet {

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    response.setContentType("application/xml; charset=UTF-8");

List eventList = //get the event list as value objects from the database
       String data = constructData(eventList);

        ServletOutputStream responseStream = response.getOutputStream();
        responseStream.write(data.getBytes("UTF8"));
        responseStream.flush();
        response.flushBuffer();

    }

private String constructData(List eventList) {

    StringBuffer data = new StringBuffer();
    data.append("<data>");

    Iterator eventListIter = eventList.iterator();
    while(eventListIter.hasNext()) {
        ValueObjects valueObjects = (ValueObjects) eventListIter.next();

        data.append("<event id='");
        data.append(valueObjects.getEventID());
        data.append("' start_date='");
        data.append(valueObjects.getStartTime());
        data.append("' end_date='");
        data.append(valueObjects.getEndTime());
        data.append("' text='");
        data.append(userCalendarValues.getActivity());
        data.append("' remarks='");
        data.append(userCalendarValues.getRemarks());
        data.append("' />");
    }
    data.append("</data>");

    return data.toString();
}

This way works perfectly for us.

Try to change the code line as

c.render_sql(“select classes.guid as event_id,classes.startdate as start_date, classes.enddate as end_date, courses.coursename as event_name, courses.description as details from classes inner join courses on CLASSES.COURSEGUID =courses.guid where courses.guid = ‘842’”, “EVENT_ID”, “START_DATE,END_DATE,EVENT_NAME,DETAILS”,"","");

Field name in upper-case ( Oracle returns them always in upper case, at least in local tests )

Thanks! All of your suggestions work.