I think the error you are getting has to do with the where clause having the word where in it. You should try updating the where clause by removing the work where in it so it looks like this:
" 0=0"
The default where clause is a filter that will be applied to the recordset when there is no search value submitted. So if you leave this at the 0=0 you should get back all the records from your recordset without any filtering.
In regards to the session variables I'm not sure that I understand what you are asking. DataAssist Search will make use of session variables to hold the previous results if you were to visit the page again without searching.
As far as the code you have it seems fine to me other than the update that you should make to the default where clause. Please give this a try and let us know if you have any other problems.