MSXML sniffing in VFP

Posted on June 13, 2005. Filed under: Visual FoxPro |

Seeing Rino’s blog entry on XML Sniffing reminded me of how common this little gotcha is.

So you might find the following handy. When our apps start up we just run a checkdependencies(bCheckXML3, bCheckXML4, etc) method with something like the following (and can someone tell me how to get code samples looking good on blogger please):

LOCAL cSaveError
LOCAL oObject3, oObject4, cMessage
cMessage = ”

PUBLIC bDependencyError

cSaveError = ON (“ERROR”)

IF NOT EMPTY(cSaveError)
ON ERROR &cSaveError
ENDIF

bDependencyError = .F.

ON ERROR bDependencyError = .T.

IF bCheckXML3
oObject3 = CREATEOBJECT(“MSXML2.DOMDocument.3.0”)
IF TYPE(‘oObject3’) ‘O’
cMessage = cMessage + ‘Microsoft XML3 Parser is not initialising. You may need to reinstall this module. ‘ + CHR(13)
ENDIF
ENDIF

IF bCheckXML4
oObject4 = CREATEOBJECT(“MSXML2.DOMDocument.4.0”)
IF TYPE(‘oObject4’) ‘O’
cMessage = cMessage + ‘Microsoft XML4 Parser is not initialising. You may need to reinstall this module. ‘ + CHR(13)
ENDIF
ENDIF

IF NOT EMPTY(cMessage)
** do your stuff here eg direct them to Microsoft’s download page etc
http://www.microsoft.com/downloads/details.aspx?FamilyID=C0F86022-2D4C-4162-8FB8-66BFC12F32B0&displaylang=en
or
http://www.microsoft.com/downloads/details.aspx?FamilyID=3144b72b-b4f2-46da-b4b6-c5d7485f2b42&displaylang=en

ENDIF

IF NOT EMPTY(cSaveError)
ON ERROR &cSaveError
ENDIF

oObject3 = .F.
oObject4 = .F.

RELEASE oObject3, oObject4

RELEASE bDependencyError

As Rino says you’ll need MSXML3 for using XMLTOCURSOR. And you’ll need MSXML4 if you’re using ADO calls that use XML.

Advertisements

Make a Comment

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Liked it here?
Why not try sites on the blogroll...

%d bloggers like this: