I've setup a local server on Windows 7 with IIS 7, for a classic ASP VBS site I'm working on.
A page gives me a "type mismatch" error. This doesn't happen with the original server (Windows 2008, IIS 7)
related code:
if myRS("age") = 10 then
- The field value is an empty string, checked with a debugger, also the error states 'string'
- The ASP file, database & the data are exact copies of the production site
- No error resuming in both the public and the local sites.
- The production server is MS-SQL 2008 R2 web edition, where the local one is Express Edition.
Now I know the code is terribly written. But how can the local server gives such an error and the public server does not? I think comparisons are made through variant type, so subtypes should be automatically evaluated with no errors?
It's most likely caused by an "..intrinsic properties.." issue. My guess is that your production server had already been "fixed" to allow it, and your local server set up has never before experienced the need to "..fix.." this.
You can read more here:
http://blogs.msdn.com/b/distributedservices/archive/2010/04/28/iis-intrinsic-properties-are-disabled-by-default-on-windows-2008-and-windows-2008-r2.aspx
You've used
CreateObject
to create your recordset/ado objects, and that's affected by this concern which caused Microsoft to disable them as default, out of the box configurations.Read a bit more here:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;287422
Although.. if you simply want it to work, then you can read the first link.
Seems like a ADO recordset issue. Try outputting myRS("age") value and if it return nothing or errors out, then try changing the sql driver in connection string or possibly even use CStr(myRS("age")) = CStr(10).
I was not aware of the server configuration you can make to fix this that Nonym mentioned. My suggestion would have been to just update the code to explicitly call the desired property instead of letting it be inferred; e.g.,
Change this:
Into this:
This can also have other advantages if I recall correctly, though no specific examples come to mind why at the moment. Best of luck!
It could be different data sources or drivers, such that data that looks the same is slightly different.
For example is it an empty string, a blank string or null.
Try rewriting so that you can log the value of myRS("age").