ADO, Python and MS Exchange

warren ali warren.ali at gmail.com
Thu Dec 23 19:27:17 CET 2004


Hi all!

I'm new to python and I seem to have a hit a of a brick wall. I hope
you guys can help.

I'm trying to rewrite some of my vbscripts in python. This particular
script connects to a mailbox in MS Exchange via ADO and calculates the
mailbox size. I seem to have run into a couple of issues getting python
to talk to MS Exchange via ADO though. This is the code i'm using:

from win32com.client import Dispatch

conn = Dispatch('ADODB.Connection')
conn.ConnectionString = "URL=http://ctmx01/exchange/warren.ali"
conn.Open()

rs = Dispatch('ADODB.RecordSet')
rs.ActiveConnection = conn

rs.Open("Select http://schemas.microsoft.com/exchange/foldersize from
scope ('deep traversal of http://ctex01/exchange/warren.ali')",
conn.ConnectionString)

But running the code, all i get is this error message:

Traceback (most recent call last):
File "C:\Python24\ad.py", line 12, in -toplevel-
rs.Open("Select http://schemas.microsoft.com/exchange/foldersize
from scope ('deep traversal of http://ctex01/exchange/warren.ali')",
conn.ConnectionString)
File
"C:\Python24\lib\site-packages\win32com\gen_py\2A75196C-D9EB-4129-B803-931327F72D5Cx0x2x8\_Recordset.py",
line 93, in Open
return self._oleobj_.InvokeTypes(1022, LCID, 1, (24, 0), ((12, 17),
(12, 17), (3, 49), (3, 49), (3, 49)),Source, ActiveConnection,
CursorType, LockType, Options)
com_error: (-2147352567, 'Exception occurred.', (0, None, '', None, 0,
-2147217900), None)

Does anyone have any suggestions? I've kinda put the code together
based on this tutorial: http://www.mayukhbose.com/python/ado/index.php
but cant seem to adapt it to talk to exchange

This is the code that works via vbscript

http://support.microsoft.com/kb/2913

Set Rec = CreateObject("ADODB.Record")
Set Rs = CreateObject("ADODB.Recordset")

strURL = "http://exchangeserver/exchange/warren.ali"
Rec.Open strURL

sSQL = "Select"
sSQL = sSQL & "
""http://schemas.microsoft.com/exchange/foldersize"" "
'sSQL = sSQL & ", ""DAV:displayname"" "
sSQL = sSQL & " from scope ('deep traversal of " & Chr(34)
sSQL = sSQL & strURL & Chr(34) & "')"
'sSQL = sSQL & "Where ""DAV:isfolder""=true"

' Open the recordset.
Rs.Open sSQL, Rec.ActiveConnection

Thanks!!

--
Keeping it (sur)real since 1981. (now in
print:http://thinkingmachine.blogsome.com)




More information about the Python-list mailing list