Bob,
Bob said:
No, no ... you're totally missing the point. He was saying that
_client-side_ recordset operations can fail
Please help me to understand your perspective. As I understand it, the ASP
code in question is _all_ server-side, but some operations behave
differently dependent upon activex settings.
Mark wrote:
"There are several ActiveX-related settings, many of which only affect a
subset of ActiveX objects. There is a single setting to disable them all,
but the more selective settings still apply even when ActiveX in general is
enabled."
Does this not imply that some ADO functions will be affected by activex
settings, others not? If so, is that somehow different from my initial
observation and resultant line of questioning?
Again:
"ADODB.Recordset is "marked safe for scripting" but is not included in IE8's
stock "PreApproved" list. The bad news is it may seem awfully hit-and-miss;
the good news is that usually you're only one or two settings changes away
from working. "
As I read it, this says that settings in IE8 can cause adodb.recordset
operations to fail, but it is possible that some (if not all will succeed)
because the default setting for IE8 will not interrupt the process. Is this
an incorrect interpretation of Mark's message?
And, finally:
"ADODB.Stream, otoh, is not only "not marked as safe for scripting," there
is also a kill bit for it, published via Windows Update (and re-published
every time a new kill bit is added, so you can count on it getting broken
again every time you fix it.)"
This seems consistent with the above, in that ADODB.stream operations are
likely to fail by default due to ActiveX settings, and is consistent with my
observations of the problem.
(he was still confused by
your original question - as I initially was - and had come to the
conclusion that you were using ADO in client-side code).
Sorry for the confusion, but no, I'm not talking about any client-side code,
if by that you mean some custom ASP code installed on a user's machine to
interact with the site.
Nowhere did he say that server-side ADO operations could be affected
by browser settings. Please, read it again.
If I follow you, your interpretation of Mark's quotes above suggests that
all of these ASP operations should succeed regardless of ActiveX settings on
the user's machine because they are server-side operations? Since that isn't
what happens, and success or failure can be determined by ActiveX settings
on the browser, what am I missing?
That's fine, if they want to go through that, but since it might not
be addressing the actual problem, you might find it coming back to
haunt you in the future. Also, some users may not be as inclined to
lower their security shields as you may be hoping.
Exactly my concern. This is why I'm searching out details about the nature
of ADO.
But I haven't seen that behavior, yet. The code to retrieve the file
name works fine regardless of my browser settings.
Well, actually, your code appears to copy the file into the SafeArray and
writes a subset of that information to the browser. Although the filename is
included in that information, so far I haven't been able to extract the
filename alone, though this may be due to the limited time I've had to
explore the possibilities. It may be that the additional code in clsUpload
requires client-side activex, but I can't see where that might be yet.
Let's attack the symptom again: I think we've established that the
file name is certainly present in the Request.
Yes.
What is actually
failing in the clsUpload code? An attempt to use ADO to write the
file to a database? An attempt to store it in the server's file
system?
Well, those certainly are the questions. ;-)
The other question being, why does it succeed when ActiveX is available in
the client-side browser?
Thanks again,
Neil