[Tutor] ADO problem
Hi Tim, thanks your help. It is clear for me now. > From: Tim Golden <[EMAIL PROTECTED]> > Subject: Re: [Tutor] ADO problem > J?nos Juh?sz wrote: > > while not rs.EOF: > > print rs.Fields[0].Value, rs.Fields[1].Value > > rs.MoveNext() > > > > It print the next result: > > IT (u'\xc1kos Szab\xf3',) > > IT (u'Szabolcs K\xe1m\xe1n',) > > ... > > > > So rs.Fields[1] is a tuple. > Well, here's the most obvious thing: > By the look of it: rs.Fields[1] is *not* a tuple. > It's an instance of some sort. rs.Fields[1].Value > *is* a tuple. So something like this: > rs.Fields[1].Value[0] > should work. I'm not quite clear why that second > field returns a tuple while the first one doesn't. Yes, It works. So, I have to use rs.Fields[1].Value[0] instead of rs.Fields[1][0].Value > To do this specific thing, you might find it easier > to use a module wrapper: > http://tgolden.sc.sabren.com/python/active_directory.html > where your query would become something like (untested): Your module works perfectly. You should know something about the recordsets :) > > import active_directory > for user in active_directory.search ( > objectClass="User", > name="*.ferbeau", > department="IT" > ): > print user.name, user.description, user.department > > Regards, Janos ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] ADO problem
János Juhász wrote: > while not rs.EOF: > print rs.Fields[0].Value, rs.Fields[1].Value > rs.MoveNext() > > It print the next result: > IT (u'\xc1kos Szab\xf3',) > IT (u'Szabolcs K\xe1m\xe1n',) > ... > > So rs.Fields[1] is a tuple. Well, here's the most obvious thing: By the look of it: rs.Fields[1] is *not* a tuple. It's an instance of some sort. rs.Fields[1].Value *is* a tuple. So something like this: rs.Fields[1].Value[0] should work. I'm not quite clear why that second field returns a tuple while the first one doesn't. (Assuming you have reproduced the code and output faithfully). To do this specific thing, you might find it easier to use a module wrapper: http://tgolden.sc.sabren.com/python/active_directory.html where your query would become something like (untested): import active_directory for user in active_directory.search ( objectClass="User", name="*.ferbeau", department="IT" ): print user.name, user.description, user.department Hope that helps somewhat. TJG ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor
[Tutor] ADO problem
Dear All, I have a good sample about using ADO to reach windows active directory. import win32com.client c = win32com.client.Dispatch("ADODB.Connection") c.Open("Provider=ADSDSOObject") rs,rc=c.Execute(""" SELECT name, description, department >From 'LDAP://DC=VELUX, DC=ORG' where objectClass='user' and name='*.ferbau' and department = 'IT' order by name """) while not rs.EOF: print rs.Fields[0].Value, rs.Fields[1].Value rs.MoveNext() It print the next result: IT (u'\xc1kos Szab\xf3',) IT (u'Szabolcs K\xe1m\xe1n',) ... So rs.Fields[1] is a tuple. I tried to turn it to get the first item from this tuple like this while not rs.EOF: print rs.Fields[0].Value, rs.Fields[1][0].Value rs.MoveNext() But it gives the next error Traceback (most recent call last): File "D:\devel\python\admin\AD_ADO.py", line 13, in ? print rs.Fields[0].Value, rs.Fields[1][0].Value File "c:\Python24\Lib\site-packages\win32com\client\dynamic.py", line 228, in __getitem__ raise TypeError, "This object does not support enumeration" TypeError: This object does not support enumeration How can I print that unicode string? János Juhász ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor