question about COM and ADO

gtalvola at NameConnector.com gtalvola at NameConnector.com
Fri Jan 28 18:36:36 EST 2000


I'm using ADO from Python, and I'm having a problem figuring out
how to do the equivalent of the VB code

    Dim cnn as New ADODB.Connection
    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\db1.mdb"
    dim rs as New ADODB.Recordset
    rs.CursorLocation = constants.adUseClient
    rs.Open "SELECT * FROM Table1", cnn, adOpenStatic,
adLockBatchOptimistic
    set rs.ActiveConnection = Nothing

in Python.  I'm trying to create a disconnected client-side recordset,
which requires that after I open the recordset, I set its
ActiveConnection property to Nothing (at least that's how it's done in
VB).  I can't figure out the equivalent in win32com.  In particular, it
chokes if I try to set it to None:

>>> from win32com.client import *
>>> cnn = Dispatch('ADODB.Connection')
>>> cnn.Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\db1.mdb"
)
>>> rs = Dispatch('ADODB.Recordset')
>>> rs.CursorLocation = constants.adUseClient
>>> rs.Open( "SELECT * FROM Table1", cnn,
constants.adOpenStatic,constants.adLockBatchOptimistic )
>>> rs.ActiveConnection = None
Traceback (innermost last):
  File "<pyshell#8>", line 1, in ?
    rs.ActiveConnection = None
  File "E:\Program
Files\Python\win32com\gen_py\00000201-0000-0010-8000-00AA006D2EA4x0x2x1
.py", line 390, in __setattr__
    apply(self._oleobj_.Invoke, args + (value,) + defArgs)
com_error: (-2146825287, 'OLE error 0x800a0bb9', (0, 'ADODB.Recordset',
'The application is using arguments that are of the wrong type, are out
of acceptable range, or are in conflict with one another.', '', 0,
-2146825287), None)


Anyone have an idea of how to do this?


Sent via Deja.com http://www.deja.com/
Before you buy.



More information about the Python-list mailing list