Date conversion in load record does not work

Questions and answers regarding general SQL and backend databases

Date conversion in load record does not work

Postby hardina09 » Fri Nov 02, 2012 10:57 pm

When below is executes, it gives me error:

Query must start with 'SELECT'
Wrapped java.lang.IllegalArgumentException: Query must start with 'SELECT'

Code: Select all
var sql=" SELECT TRANS_ID FROM JOBWORKS " +
" WHERE EMPID='" + varEmpId + "'" +
" AND CONVERT(VARCHAR(30),STARTDATES,121) BETWEEN CONVERT(VARCHAR(30),'" + startDate + "',121) AND CONVERT(VARCHAR(30),'" + endDate + "',121) " +
" ORDER BY STARTDATES"
foundset.loadRecords(sql,null)


I don't know where I went wrong. Any Suggestion.
hardina09
 
Posts: 62
Joined: Tue Apr 24, 2012 9:46 pm

Re: Date conversion in load record does not work

Postby jgarfield » Fri Nov 02, 2012 11:06 pm

You've got an extra space at the beginning of your query.

Code: Select all
var sql="SELECT TRANS_ID FROM JOBWORKS " +
" WHERE EMPID='" + varEmpId + "'" +
" AND CONVERT(VARCHAR(30),STARTDATES,121) BETWEEN CONVERT(VARCHAR(30),'" + startDate + "',121) AND CONVERT(VARCHAR(30),'" + endDate + "',121) " +
" ORDER BY STARTDATES"
foundset.loadRecords(sql,null)
Should work better.

Really you should parameterize your query so it looks more like this though:
Code: Select all
var sql="SELECT TRANS_ID FROM JOBWORKS " +
" WHERE EMPID= ? " +
" AND CONVERT(VARCHAR(30),STARTDATES,121) BETWEEN CONVERT(VARCHAR(30), ?,121) AND CONVERT(VARCHAR(30), ?,121) " +
" ORDER BY STARTDATES"
foundset.loadRecords(sql,[varEmpID, startDate, endDate])
Programmer.
adBlocks
http://www.adblocks.com
jgarfield
 
Posts: 223
Joined: Wed Sep 28, 2005 9:02 pm
Location: Boston, US

Re: Date conversion in load record does not work

Postby hardina09 » Fri Nov 09, 2012 3:11 pm

Awesome! Thanks jgarfield.
hardina09
 
Posts: 62
Joined: Tue Apr 24, 2012 9:46 pm


Return to SQL Databases

Who is online

Users browsing this forum: Bing [Bot] and 9 guests