Welcome to the dBforums forums.

You are currently viewing our boards as a guest which gives you limited access to view most discussions, articles and access our other FREE features. By joining our free community you will have access to post topics, communicate privately with other members (PM), respond to polls, upload your own photos and access many other special features. Registration is fast, simple and absolutely free so please, join our community today!

If you have any problems with the registration process or your account login, please contact contact support.

If you prefer not to see double-underlined words and corresponding ads, place your cursor
here for ContentLink opt out.

Go Back  dBforums > Data Access, Manipulation & Batch Languages > ASP > rs error with serverHTMLEncode

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1 (permalink)  
Old 03-12-03, 16:16
skalag skalag is offline
Registered User
 
Join Date: Mar 2003
Posts: 11
rs error with serverHTMLEncode

hi, i have a value passed to a page to define sql query to populate select dropdown, when there is a valid value i get no errors, but when the value is "" (for no selection)i get an error from: response.write(serverHTMLEncode(TRIM... as TYPE MISMATCH...can anyone help?

code
__________________________________________

' increment counter
intRecordCounter = intRecordCounter + 1


Response.Write "<option value="""
Response.Write(server.HTMLEncode(Trim(rs.Fields("M odel"))))
Response.Write """"
Response.Write ">"
Reply With Quote
  #2 (permalink)  
Old 03-12-03, 16:38
rhs98 rhs98 is offline
Moderator
 
Join Date: Feb 2002
Location: Hampshire, UK
Posts: 440
try using cstr. Casts it as a string a belive

Code:
Response.Write "<option value=""" Response.Write(server.HTMLEncode(Trim(cstr(rs.Fields("Model"))))) Response.Write """" Response.Write ">"
Reply With Quote
  #3 (permalink)  
Old 03-12-03, 16:59
skalag skalag is offline
Registered User
 
Join Date: Mar 2003
Posts: 11
no it doesnt work, i get an error now saying invalid use of NULL: 'cstr'
Reply With Quote
  #4 (permalink)  
Old 03-12-03, 20:33
rhs98 rhs98 is offline
Moderator
 
Join Date: Feb 2002
Location: Hampshire, UK
Posts: 440
Could it be it's because there is a null value?

Either modify the sql to include
Code:
where blah='dss' and blah=2 and model is not null

or try this;
Code:
if rs.fields("model")<>"" then Response.Write "<option value=""" Response.Write(server.HTMLEncode(Trim(rs.Fields("Model")))) Response.Write """" Response.Write ">" end if
Reply With Quote
  #5 (permalink)  
Old 03-13-03, 07:14
skalag skalag is offline
Registered User
 
Join Date: Mar 2003
Posts: 11
yes rhs 98, there are null values that are giving me trouble, i am working on a database that is not mine has quite a few null values in a number field used as date (1996, 1983, etc), when i search and select from DB it ignores the records with Null values..i have just found that about 50% of records are being ignored by my seasrch.How can i fix this? PS. Your little if statement fixed the response.write problem

when i use sql like this it ignores the records with NULL, is there any way around this cos i need to select these records, it seems like maybe the rs does have the records but cant write them or why else did it error?...i am a newbie at this of a few months only so im not sure what is happening...pleasse help!

SQL="SELECT Model, Make, Year, Colour, NewVehicle, Retailprice, Doors, Extras, Gears, StockNo FROM VEHICLE WHERE Model LIKE '%" & Request.Form("Hmodel") & "%' " & "AND Make Like '%" & Request.Form("Hmake") & "%' " & "AND Colour Like '%" & Request.Form("Hcolour") & "%' " & "AND Year Like '%" & Request.Form("Hyear") & "%' ORDER by MAKE ASC"

Last edited by skalag : 03-13-03 at 08:21.
Reply With Quote
  #6 (permalink)  
Old 03-13-03, 21:30
rhs98 rhs98 is offline
Moderator
 
Join Date: Feb 2002
Location: Hampshire, UK
Posts: 440
if a record is matched by your query, then it will be returned even if it has nulls

May I suggest though that if you are not searching on all the fields that you not inculde them in the query. I.e. build the sql statement using if statements;
Code:
if request.form("x")<>"" then query=query& ' and x='"&request.form("x")&"'" end if

it may help. Also removing the nulls from your database might be a good idea depending on if they are meant to be there
Reply With Quote
  #7 (permalink)  
Old 03-14-03, 08:29
skalag skalag is offline
Registered User
 
Join Date: Mar 2003
Posts: 11
thanks RHS98, but it took me along time to figure out the above sql, so i dont know how to do as you say...and im also confused about these null values, i did a test page and it displayed all the records, leaving a blank for the null year fields, but then it stopped doing this and only displayed those fields with values and i dont know how i made this happen or where the other null records have gone.
Reply With Quote
  #8 (permalink)  
Old 03-14-03, 09:15
Frettmaestro Frettmaestro is offline
Registered User
 
Join Date: Jan 2003
Location: London, England
Posts: 106
You can do something like this:

SQL="SELECT IsNull(Model, 'unknown') AS Model, Make, Year, Colour,...

Doing it like this will make model = "unknown" if it holds a null-value.
__________________
Frettmaestro
"Real programmers don't document, if it was hard to write it should be hard to understand!"
Reply With Quote
  #9 (permalink)  
Old 03-14-03, 09:28
skalag skalag is offline
Registered User
 
Join Date: Mar 2003
Posts: 11
Thanks Frettmaestro, i will try this and see if i can make it work.
Reply With Quote
  #10 (permalink)  
Old 03-14-03, 09:40
Frettmaestro Frettmaestro is offline
Registered User
 
Join Date: Jan 2003
Location: London, England
Posts: 106
Hmm, looks like I missed part of the question here. The method I just provided might not work after all.

If you insert these two lines in you code right before the sql-statement gets executed
Response.Write(SQL)
Response.end
and then run the page. You will see that the sql-query is not really looking good (you will have alot of empty '%%' in it if all of your fields are not filled out). It's the logic in your sql-statement that makes it reject the null/emty values so you need to change your logic to something that works. This works (I clipped this from a previous post of mine on another forum):
Code:
SQL = "SELECT * FROM myTable " & _ "WHERE myTableID IS NOT NULL " '<- make sure that this is true no matter what! Important! IF TRIM(Request.Form("Model")) <> "" THEN SQL = SQL & "AND Model LIKE '%" & TRIM(Request.Form("Model")) & "%' " END IF IF TRIM(Request.Form("Make")) <> "" THEN SQL = SQL & "AND Make LIKE '%" & TRIM(Request.Form("Make")) & "%' " END IF ... Set RS = Conn.Execute(SQL)
This way your sql will be built only serching the fields that the user has set values for. Hopefully you understand what happens...if not ask, and I will try to explain better...
__________________
Frettmaestro
"Real programmers don't document, if it was hard to write it should be hard to understand!"

Last edited by Frettmaestro : 03-14-03 at 09:43.
Reply With Quote
  #11 (permalink)  
Old 03-14-03, 09:44
skalag skalag is offline
Registered User
 
Join Date: Mar 2003
Posts: 11
i got it working, thanks Frettmaestro...it will help clean up my sql problems on other pages...

...also will this work for me? I will need to be more concise about my needs..I am performing a search by 4 select option drop downs, each determining the next drop downs RS of options, i had it working reasonably ok(still not right) but then tried to improve and now it works less well...i need to allow user to select between 1 and 4 search parameters before displaying the results, but some of the DB fields are necessarily and temporarily blank or null but i still need to select these for display...im a novice and need directions...if anyone wants to look at full code and offer good suggestions id be grateful...

Last edited by skalag : 03-14-03 at 10:42.
Reply With Quote
  #12 (permalink)  
Old 03-14-03, 12:01
skalag skalag is offline
Registered User
 
Join Date: Mar 2003
Posts: 11
that all works great Frettmaestro, it has tidied up my version of IF & SQL statements, and is much more efficient...but my problem now is that the search will narrow down to only one option and if this has a null value then it crashes..I need to convert null to a 'unknown' or something as you said, how can i do this?
Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On