Dim QI1 As MSMQQueueInfo, RequestQueue As MSMQQueue Set QI1 = New MSMQQueueInfo QI1.PathName = "MyServerComputer\MyQueue" Set RequestQueue = QI1.Open(MQ_RECEIVE_ACCESS, MQ_DENY_RECEIVE_SHARE) Dim msgRequest As MSMQMessage Set msgRequest = RequestQueue.Receive(ReceiveTimeout:=0) If Not (msgRequest Is Nothing) Then ' (1) process message ' (2) send notification back to client Dim QI2 As As MSMQQueueInfo, ResponseQueue As MSMQQueue Set QI2 = msg.ResponseQueueInfo Set ResponseQueue = QI2.Open(MQ_SEND_ACCESS, MQ_DENY_NONE) Dim msgResponse As MSMQMessage Set msgResponse = New MSMQMessage msgResponse.Label = "Receipt for: " & msgRequest.Label msgResponse.Body = "Your sales transaction has been completed" msgResponse.CorrelationId = msgRequest.Id msgResponse.Send ResponseQueue ResponseQueue.Close End If RequestQueue.Close
Figure 2 Assigning an ADO Recordset
Dim conn As New Connection
conn.Open "PROVIDER=SQLOLEDB;SERVER=(local);" & _
"DATABASE=Pubs;UID=sa;PWD=;"
Dim rs As Recordset
Set rs = New Recordset
rs.CursorLocation = adUseClient
rs.CursorType = adOpenStatic
rs.LockType = adLockReadOnly
rs.Open "SELECT * FROM authors", conn
' pack recordset into a new message
Dim msg As MSMQMessage
Set msg = New MSMQMessage
msg.Body = rs
' send message to queue
msg.Send ResponseQueue
q.Close
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
Figure 3 Creating the Recordset
Dim rs As Recordset
Set rs = New Recordset
rs.Fields.Append "Customer", adBSTR, -1
rs.Fields.Append "Product", adBSTR, -1
rs.Fields.Append "Quantity", adInteger
rs.Open ' open in order to add rows
' add first order
rs.AddNew
rs("Customer") = "Bob"
rs("Product") = "LavaLamp"
rs("Quantity") = 144
rs.Update
' add second order
rs.AddNew
rs("Customer") = "Bob"
rs("Product") = "MoodRing"
rs("Quantity") = 10
rs.Update
' pack recordset into a new message
Dim msg As MSMQMessage
Set msg = New MSMQMessage
msg.Body = rs
' send message to queue
msg.Send q