[AccessD] XQuery in VB 6

MartyConnelly martyconnelly at shaw.ca
Mon Apr 23 20:03:36 CDT 2007


Maybe when I finally get around to getting my IBM XML certification
if they don't stop moving the goal posts. Last time I went to try it,
they changed the exam and dropped XSL patterns as obsolete
after I finally figured them out and the penny dropped..

Yeah now I have to find out the differences between XQuery and LINQ.
NetFramework 3.5 is now out with changes to VSTO.


Jim DeMarco wrote:

>I'll second that. 
>
>
>Jim
>
>-----Original Message-----
>From: accessd-bounces at databaseadvisors.com
>[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Ervin Brindza
>Sent: Friday, April 20, 2007 2:42 AM
>To: Access Developers discussion and problem solving
>Subject: Re: [AccessD] XQuery in VB 6
>
>Marty,
>when will be your MVP announcement?
>Regards,
>    Ervin
>----- Original Message -----
>From: "MartyConnelly" <martyconnelly at shaw.ca>
>To: "Access Developers discussion and problem solving" 
><accessd at databaseadvisors.com>
>Sent: Friday, April 20, 2007 3:02 AM
>Subject: Re: [AccessD] XQuery in VB 6
>
>
>  
>
>>Option Compare Database
>>Option Explicit
>>
>>Dim mcolRate As Collection
>>Sub testxml()
>> Set mcolRate = New Collection
>>'find daily US dollar fixed rate vs Euro from Euro Central Bank
>>' via XPath
>>
>>GrabXMLFile ("http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml")
>>
>>Debug.Print mcolRate("USD")
>>MsgBox "US Euro Rate ECB " & mcolRate("USD")
>>End Sub
>>Public Function GrabXMLFile(ByRef AdviserXML As String)
>> 'http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html
>>
>>'Base currency is Euro so will have to do a conversion for USD
>>'Note the link for other pages with sources for XML etc.
>>
>> 'http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml
>>   'On Error GoTo ErrorHandler
>>   'needs reference set to XML 4.0 and maybe ADO 2.8
>>   Dim oDOMDocument As MSXML2.DOMDocument40
>>   Dim oNodeList As IXMLDOMNodeList
>>   Dim oAdviserDetailsNode As IXMLDOMNode
>>   Dim oLowestLevelNode As IXMLDOMElement
>>   Dim oNode As IXMLDOMNode
>>   Dim objXMLDOMNamedNodeMap As IXMLDOMNamedNodeMap
>>    Dim xPError As IXMLDOMParseError
>>   Dim Mydb As Database
>>   Dim myrs As ADODB.Recordset
>>   Dim sTempValue As String
>>
>>   Set oDOMDocument = New MSXML2.DOMDocument40
>>
>>   oDOMDocument.async = False
>>   oDOMDocument.validateOnParse = True 'you may want to parse for
>>    
>>
>errors
>  
>
>>   oDOMDocument.resolveExternals = False
>>   oDOMDocument.preserveWhiteSpace = True
>>
>>   'use if xml disk file
>>     If Not oDOMDocument.Load(AdviserXML) Then
>>       MsgBox ("XML File error")
>>            Set xPError = oDOMDocument.parseError
>>       DOMParseError xPError
>>
>>      End If
>>  Set oAdviserDetailsNode = oDOMDocument.documentElement
>>    Debug.Print oDOMDocument.xml
>>
>>  'use appropriate XPath expression to select nodes
>>
>> ' Set oNodeList = 
>>oAdviserDetailsNode.selectNodes("Envelope/Cube/Cube/@*")
>> Set oNodeList = oAdviserDetailsNode.selectNodes("//@*")
>>
>>    Debug.Print oNodeList.length
>>
>>   For Each oNode In oNodeList
>>
>>     '  Debug.Print "*" & oNode.Text; oNode.nodeName & "*"
>>
>>       Select Case oNode.nodeName
>>           Case "currency"
>>                sTempValue = oNode.Text
>>
>>           Case "rate"
>>            'This path is used to store a variable on the collection
>>               On Error Resume Next
>>                mcolRate.Remove sTempValue
>>                mcolRate.Add oNode.Text, sTempValue
>>                  Debug.Print sTempValue & " rate " & oNode.Text
>>               On Error GoTo ErrorHandler
>>
>>       End Select
>>
>>     Next
>>   Set oNodeList = Nothing
>>   Set oDOMDocument = Nothing
>>   Set oAdviserDetailsNode = Nothing
>>   Set objXMLDOMNamedNodeMap = Nothing
>>   Exit Function
>>
>>ErrorHandler:
>>
>> '  Call NewError.Raise(Err.Number, Err.Source, Err.Description)
>>
>>End Function
>>Sub DOMParseError(xPE As IXMLDOMParseError)
>>
>>   ' The document failed to load.
>>   Dim strErrText As String
>>   ' Obtain the ParseError object
>>   With xPE
>>   strErrText = "Your XML Document failed to load" & _
>>       "due the following error." & vbCrLf & _
>>       "Error #: " & .errorCode & ": " & xPE.reason & _
>>       "Line #: " & .Line & vbCrLf & _
>>       "Line Position: " & .linepos & vbCrLf & _
>>       "Position In File: " & .filepos & vbCrLf & _
>>       "Source Text: " & .srcText & vbCrLf & _
>>       "Document URL: " & .url
>>   End With
>>   Debug.Print strErrText
>>
>> Dim s As String
>> Dim r As String
>> Dim i As Long
>>
>>  s = ""
>> For i = 1 To xPE.linepos - 1
>>   s = s & " "
>> Next
>> r = "XML Error loading " & xPE.url & " * " & xPE.reason
>> Debug.Print r
>>   'show character postion of error; tired of counting chars in xml
>>    
>>
>file
>  
>
>> If (xPE.Line > 0) Then
>>   r = "at line " & xPE.Line & ", character " & xPE.linepos & vbCrLf &
>>    
>>
>_
>  
>
>>        xPE.srcText & vbCrLf & s & "^"
>> End If
>> Debug.Print r
>>   MsgBox strErrText, vbExclamation
>>End Sub
>>
>>
>>Jim DeMarco wrote:
>>
>>    
>>
>>>Thanks Marty.  I'll pass this on to my team.
>>>
>>>We're using XQuery but we're not strongly tied to it.  I had mentioned
>>>XPath but I thought that was used to access one piece of data (or one
>>>related set of nodes out of a structure).  We need to  return select
>>>nodes based on criteria.  Is this an accurate description of
>>>      
>>>
>differences
>  
>
>>>betweent the two do you think?
>>>
>>>
>>>Jim
>>>
>>>-----Original Message-----
>>>From: accessd-bounces at databaseadvisors.com
>>>[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of
>>>      
>>>
>MartyConnelly
>  
>
>>>Sent: Thursday, April 19, 2007 12:59 PM
>>>To: Access Developers discussion and problem solving
>>>Subject: Re: [AccessD] XQuery in VB 6
>>>
>>>I have only used XQuery with SQL 2005 & VB.Net I have XPath examples
>>>      
>>>
>in
>  
>
>>>VBA
>>>
>>>Are you using XQuery or XPath?
>>>
>>>XPath is imbedded in both XSLT and XQuery. In those languages it
>>>      
>>>
>serves
>  
>
>>>the role of node-set identification (selection)
>>>
>>>XQuery example
>>>
>>>Dim sql_getbank As String = "SELECT
>>>Demographics.query('data(//BankName)') " _
>>>
>>>                         & "FROM Store WHERE CustomerID =
>>>      
>>>
>@CustomerID"
>  
>
>>>XPath example
>>>
>>>   Set oAdviserDetailsNode = oDOMDocument.documentElement
>>>  'use appropriate XPath expression to select nodes
>>>  Set oNodeList =
>>>oAdviserDetailsNode.selectNodes("//BusinessDetails/*")
>>>
>>>Have a look at
>>>SQL Server 2005 XQuery and XML-DML - Part 2 By Alex Homer
>>>
>>>http://www.15seconds.com/issue/050811.htm
>>>
>>>
>>>Jim DeMarco wrote:
>>>
>>>
>>>
>>>      
>>>
>>>>X-posted AccessD, VB
>>>>
>>>>Hello All,
>>>>
>>>>I've been absent for a while but an issue has just come up that I
>>>>        
>>>>
>hope
>  
>
>>>>someone can help with.
>>>>
>>>>Does anyone have any VB 6 code that uses XQuery to return a set of
>>>>nodes?  I find plenty of XQuery examples that show the query and the
>>>>returned nodes but no VB 6 implementation.
>>>>
>>>>Any short code snip will do.
>>>>
>>>>TIA,
>>>>
>>>>Jim DeMarco
>>>>
>>>>
>>>>        
>>>>
>>-- 
>>Marty Connelly
>>Victoria, B.C.
>>Canada
>>
>>-- 
>>AccessD mailing list
>>AccessD at databaseadvisors.com
>>http://databaseadvisors.com/mailman/listinfo/accessd
>>Website: http://www.databaseadvisors.com
>>
>>
>>-- 
>>Internal Virus Database is out-of-date.
>>Checked by AVG Free Edition.
>>Version: 7.5.446 / Virus Database: 268.18.24/742 - Release Date:
>>    
>>
>4/1/2007 
>  
>
>>8:49 PM
>>
>>
>>    
>>
>
>  
>

-- 
Marty Connelly
Victoria, B.C.
Canada




More information about the AccessD mailing list