in reply to Re: Re: DBI and Win32::OLE Conflict?
in thread DBI and Win32::OLE Conflict?

And now I've fixed it. Please re-read the node.


Fun Fun Fun in the Fluffy Chair

Replies are listed 'Best First'.
Re: Re^b11: DBI and Win32::OLE Conflict?
by Anonymous Monk on Jan 03, 2003 at 13:56 UTC

    Sorry I didn't get back to you last night.

    I tried the updated regex and it worked. But the two outputs are still identical.

    I really don't think the XML is the issue. I think this because of the test I mentioned in my first post:

    The important thing to note is that both the XML from the first program and the XML from the second program are identical. As a matter of fact, if I use my "XML Feeder" to feed actual.xml (the XML from the second program - the "supposed" culprit) to QB, QB happily accepts it.

    Meaning that I feed the xml created by the "problem" program to QB. I don't feed it to QB using the problem program but by a third program altogether (the program I use to test QB's reaction to XML). And it works. So, assuming I'm wrong and the XML isn't identical, it doesn't matter. Because QB still accepts it.

    But, just in case you need to see for yourself, here is the XML from the first program (the one that works), as it is ouputed to reinvent.xml:

    <?xml version="1.0" standalone="no"?> <!DOCTYPE QBXML PUBLIC '-//INTUIT//DTD QBXML QBD 1.1//EN'> <QBXML> <QBXMLMsgsRq onError="stopOnError"> <TimeTrackingAddRq requestID="1"> <TimeTrackingAdd> <TxnDate>2003-01-01</TxnDate> <EntityRef> <ListID>40000-1022206382</ListID> </EntityRef> <CustomerRef> <FullName>Cahoots Sports Bar &amp; Grill</FullName> </CustomerRef> <ItemServiceRef> <FullName>AP</FullName> </ItemServiceRef> <Duration>PT00H01M</Duration> </TimeTrackingAdd> </TimeTrackingAddRq> </QBXMLMsgsRq> </QBXML>

    And here is the XML from the second program (the one that is screwing up), as it is outputed to actual.xml:

    <?xml version="1.0" standalone="no"?> <!DOCTYPE QBXML PUBLIC '-//INTUIT//DTD QBXML QBD 1.1//EN'> <QBXML> <QBXMLMsgsRq onError="stopOnError"> <TimeTrackingAddRq requestID="1"> <TimeTrackingAdd> <TxnDate>2003-01-01</TxnDate> <EntityRef> <ListID>40000-1022206382</ListID> </EntityRef> <CustomerRef> <FullName>Cahoots Sports Bar &amp; Grill</FullName> </CustomerRef> <ItemServiceRef> <FullName>AP</FullName> </ItemServiceRef> <Duration>PT00H01M</Duration> </TimeTrackingAdd> </TimeTrackingAddRq> </QBXMLMsgsRq> </QBXML>

    And, after running the regex that you gave me, this is what reinvent.xml turns into:

    <\077xml\040version\075\0421\0560\042\040standalone\075\042no\042\077> +\012<\041DOCTYPE\040QBXML\040PUBLIC\040\047\055\057\057INTUIT\057\057 +DTD\040QBXML\040QBD\0401\0561\057\057EN\047>\012<QBXML>\012\040\040<Q +BXMLMsgsRq\040onError\075\042stopOnError\042>\012\040\040\040\040<Tim +eTrackingAddRq\040requestID\075\0421\042>\012\040\040\040\040\040\040 +<TimeTrackingAdd>\012\040\040\040\040\040\040\040\040<TxnDate>2003\05 +501\05501<\057TxnDate>\012\040\040\040\040\040\040\040\040<EntityRef> +\012\040\040\040\040\040\040\040\040\040\040<ListID>40000\05510222063 +82<\057ListID>\012\040\040\040\040\040\040\040\040<\057EntityRef>\012 +\040\040\040\040\040\040\040\040<CustomerRef>\012\040\040\040\040\040 +\040\040\040\040\040<FullName>Cahoots\040Sports\040Bar\040\046amp\073 +\040Grill<\057FullName>\012\040\040\040\040\040\040\040\040<\057Custo +merRef>\012\040\040\040\040\040\040\040\040<ItemServiceRef>\012\040\0 +40\040\040\040\040\040\040\040\040<FullName>AP<\057FullName>\012\040\ +040\040\040\040\040\040\040<\057ItemServiceRef>\012\040\040\040\040\0 +40\040\040\040<Duration>PT00H01M<\057Duration>\012\040\040\040\040\04 +0\040<\057TimeTrackingAdd>\012\040\040\040\040<\057TimeTrackingAddRq> +\012\040\040<\057QBXMLMsgsRq>\012<\057QBXML>

    And what actual.xml turns into:

    <\077xml\040version\075\0421\0560\042\040standalone\075\042no\042\077> +\012<\041DOCTYPE\040QBXML\040PUBLIC\040\047\055\057\057INTUIT\057\057 +DTD\040QBXML\040QBD\0401\0561\057\057EN\047>\012<QBXML>\012\040\040<Q +BXMLMsgsRq\040onError\075\042stopOnError\042>\012\040\040\040\040<Tim +eTrackingAddRq\040requestID\075\0421\042>\012\040\040\040\040\040\040 +<TimeTrackingAdd>\012\040\040\040\040\040\040\040\040<TxnDate>2003\05 +501\05501<\057TxnDate>\012\040\040\040\040\040\040\040\040<EntityRef> +\012\040\040\040\040\040\040\040\040\040\040<ListID>40000\05510222063 +82<\057ListID>\012\040\040\040\040\040\040\040\040<\057EntityRef>\012 +\040\040\040\040\040\040\040\040<CustomerRef>\012\040\040\040\040\040 +\040\040\040\040\040<FullName>Cahoots\040Sports\040Bar\040\046amp\073 +\040Grill<\057FullName>\012\040\040\040\040\040\040\040\040<\057Custo +merRef>\012\040\040\040\040\040\040\040\040<ItemServiceRef>\012\040\0 +40\040\040\040\040\040\040\040\040<FullName>AP<\057FullName>\012\040\ +040\040\040\040\040\040\040<\057ItemServiceRef>\012\040\040\040\040\0 +40\040\040\040<Duration>PT00H01M<\057Duration>\012\040\040\040\040\04 +0\040<\057TimeTrackingAdd>\012\040\040\040\040<\057TimeTrackingAddRq> +\012\040\040<\057QBXMLMsgsRq>\012<\057QBXML>

    According to that program I downloaded ("Beyond Compare"), they are identical. I'd try to compare them by eye, but my eyes are already strained as it is.

      I was addressing a pretty limited concern - whether the files really were identical or just appeared that way. I took a minute and read over your error log again. Xerces SAX parser is throwing the error on not being able to resolve the QBXML DTD. I'm guessing that it's attempting to find a file and failing.

      I would suggest two things - download Filemon from http://www.sysinternals.com to see if a DTD file is being searched for and not found. Also consider altering your DOCTYPE declaration line - just remove it. Or consider specifying your QuickBasic DTD explicitly with a SYSTEM and a filepath to the DTD.

      Did DBI::CSV change the current path? $ENV{PATH}? Anything relating to what the current directory is and how to find other files? Are you developing these in different directories? Have you gone to http://xml.apache.org to see what code the SAX parser is executing when it throws that error? These are all avenues for investigation.


      Fun Fun Fun in the Fluffy Chair

        Thank you for your help - I really do appreciate you wasting your time on this. Unfortunately, after taking Friday night and all day Saturday to work on this, I am unable to figure out what's wrong, much less solve the problem. Maybe in a few years I'll be smart enough, but for now I'll just give up and do by hand what the program should have been able to do much faster.