lundi 9 mars 2015

Error : com.microsoft.sqlserver.jdbc.SQLServerException: The column name St_age is not valid


Vote count:

0




I have a query being excecuted via the backend servlet code. i m calling these methods using my xhtml get methods the code is as follows


xhtml page


this is where my get method is,



function onload() {

gettm();
load_initial();
load_chart();
}


this methods are defined in .js files where the get methods are as follows,


1.js file which handles load_initial()



function load_initial() {
$.get('filter.xhtml', null, function () {
var $campaign = 5;
document.getElementById("datepicker1").value = "01/01/2012";
document.getElementById("datepicker2").value = "07/31/2014";
var start_date = document.getElementById("datepicker1").value;
var end_date = document.getElementById("datepicker2").value;

$.get('../Paid_deep_dive', {type: "paid_performance", campaign_id: $campaign, s_date: start_date, e_date: end_date}, function (response) {

var data = response.paid_performance;
response_data = response;

$('table#tb2 TBODY').empty();
$.each(data, function (idx, elem) {
$('table#tb2 TBODY').append('<tr><td width ="12%"><form><input type="button" class="btn btn-block btn-lg btn-inverse" onclick="window.location.href=\'http://localhost:8080/Digiview_v2/faces/xhtml_files/paid_drill_down.xhtml?variable=' + encodeURIComponent(elem.site_id) + '\'" value="' + elem.site_name + '" style="width:100%" ></form></center></td><td align="center" width="33%"><center>' + elem.impressions.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") + '</center></td><td align="center" width="25%"><center>' + elem.ontarper + '%</center></td>;<td align="center"><center>' + elem.viewable_imp.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") + '</center></td></tr>');

});


});
});


}


2.js file where the load_chart() is being called



function load_chart()
{
$.get('filter.xhtml', null, function () {
document.getElementById("datepicker1").value = "01/01/2012";
document.getElementById("datepicker2").value = "07/31/2014";
var start_date = document.getElementById("datepicker1").value;
var end_date = document.getElementById("datepicker2").value;
var $campaign = 5;
$.get('../Paid_deep_dive', {type: "paid_demo", campaign_id: $campaign, s_date: start_date, e_date: end_date}, function (response) {
/* chart drawing code */
}


now this connects to the back end java/servlet file where these methods are handled like this,


Java file handling backend servlet code



if (type.equals("paid_performance")) {
try {
String campaign = request.getParameter("campaign_id");
int cid = Integer.parseInt(campaign);
String start_date = request.getParameter("s_date");
String end_date = request.getParameter("e_date");
String sdate_split[] = start_date.split("/", 3);
String edate_split[] = end_date.split("/", 3);
start_date = sdate_split[2] + "-" + sdate_split[0] + "-" + sdate_split[1];
end_date = edate_split[2] + "-" + edate_split[0] + "-" + edate_split[1];
prepStmt = con.prepareStatement(dbquery.pdd_performance);
prepStmt.setInt(1, cid);
prepStmt.setString(2, start_date);
prepStmt.setString(3, end_date);
rs = prepStmt.executeQuery();

data_array = new JSONArray();
float on_tar_per = 0;
while (rs.next()) {
json = new JSONObject();
json.put("site_name", rs.getString("site_nm"));
json.put("impressions", rs.getString("Niel_Imp"));
on_tar_per = (rs.getFloat("OnTarget_Imp") / rs.getFloat("Niel_Imp")) * 100;
json.put("ontarper", (int) on_tar_per);
json.put("viewable_imp", (int) rs.getInt("Viewable_Imp"));

data_array.put(json);

}
mainjson = new JSONObject();
mainjson.put("paid_performance", data_array);

String responsetojsp = mainjson.toString();
System.out.println(responsetojsp);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(responsetojsp);
} catch (NumberFormatException | SQLException | JSONException e) {
logger.error("Error : " + e);
}
}
if (type.equals("paid_demo")) {
try {
System.out.println("I m in Paid Demographics");
String campaign = request.getParameter("campaign_id");
System.out.println(campaign);
int cid = Integer.parseInt(campaign);
System.out.println(cid);
String start_date = request.getParameter("s_date");
String end_date = request.getParameter("e_date");

prepStmt = con.prepareStatement(dbquery.pdd_demographic);
prepStmt.setInt(1, cid);
prepStmt.setString(2, start_date);
prepStmt.setString(3, end_date);
rs = prepStmt.executeQuery();
String age_limit = "";
JSONArray male = new JSONArray();
JSONArray female = new JSONArray();
while (rs.next()) {
json = new JSONObject();
age_limit = rs.getString("St_age") + "-" + rs.getString("en_age");
if (rs.getString("Gender").equals("F")) {

json.put("age", age_limit);
json.put("imp", rs.getString("Niel_Imp"));
male.put(json);

} else {
json.put("age", age_limit);
json.put("imp", rs.getString("Niel_Imp"));
female.put(json);

}
}
mainjson.put("male", male);
mainjson.put("female", female);

String responsetojsp = mainjson.toString();
System.out.println(responsetojsp);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(responsetojsp);
} catch (Exception e) {
logger.error("Error : " + e);
}
}


the dbquery file which has the query for this java file is as follows,



public static String pdd_performance = " select a.cmpid,a.site_nm,a.Niel_Imp,a.OnTarget_Imp,a.Viewable_Imp,a.SITEID,b.OnTargetBenchMark,.55 as ViewabilityNorm from " +
" (select a.siteID as SITEID,a.cmpid,c.site_nm,sum(a.Imp) as Niel_Imp,sum(OnTarget_Imp) as OnTarget_Imp,sum(Viewable_Imp) as Viewable_Imp " +
" from socmet_niel_fact a left join " +
" dimdate d on d.datekey=a.datekey " +
" left join SocMet_NielSite_Dim c on a.siteid=c.siteid " +
" where a.CmpID = ? and d.date between ? and ? " +
" group by a.cmpid,c.site_nm,a.SiteID) a " +
" left join " +
" (select cmpid,OnTargetBenchMark from DigMet_Dash_OnTargetBenchMark) b on a.cmpid=b.cmpid;";


public static String pdd_demographic = "select Gender,St_age,en_age,sum(a.Imp) as Niel_Imp from socmet_niel_fact2 a left join "
+ " dimdate d on d.datekey=a.datekey "
+ " inner join DigMet_Dash_Cmp_LookUp c on a.CmpID=c.CmpId "
+ " where a.CmpID=? and d.date between ? and ? "
+ " group by Gender,St_age,en_age";


but my problem is when both the functions are called i either get the table or the chart but not both, i want both of them to display properly when i call this functions, and i get the errors stating,



Error : com.microsoft.sqlserver.jdbc.SQLServerException: The column name St_age is not valid.



when the chart is not loading and if the chart loads and if the table doesnt load i get the error stating



Error : com.microsoft.sqlserver.jdbc.SQLServerException: The column name site_nm is not valid.



but both the column names are valid no doubt in that! Pls help me out !



asked 1 min ago







Error : com.microsoft.sqlserver.jdbc.SQLServerException: The column name St_age is not valid

Aucun commentaire:

Enregistrer un commentaire