<p>I'm a bit confused here.  Microsoft as far as I can tell claims that parametrization is the best way to protect your database from SQL injection attacks.  But I find two conflicting sources of information here:</p>

<p><a href="http://support.microsoft.com/kb/200190" rel="nofollow noreferrer">This page</a> says to use the ADO command object.  But <a href="http://msdn.microsoft.com/en-us/library/ms679836(VS.85).aspx" rel="nofollow noreferrer">this page</a> says that the command object isn't safe for scripting.  I seem to recall reading somewhere that the command object shouldn't be used in VBScript or JScript because of security vulnerabilities, but I can't seem to find that article.</p>

<p>Am I missing something here, or do those two articles seem to contradict each other?</p>

I could be wrong here, but I think this just means that someone could use the Command object to do bad things.  I.e. it's not to be trusted if someone else is scripting it.
See
safe for scripting
in this article.  Every instance that talks about this phrase online, references it as if you are marking an ActiveX control saying "This control does no I/O or only talks back to the server that it came from" but the Command object doesn't do that.  It can be used to do a lot of things which could be unsafe.
The "safe" they are talking about and the "safe" to prevent from SQL injection are two different things.  The article about using the ADO Command object to parametrize your data is spot on.  You should do that.
And, Microsoft further confirms this here:
http://msdn.microsoft.com/en-us/library/ms676585(v=VS.85).aspx