[IronPython] [ANN]: IronPython 2.6 Beta 2

Dino Viehland dinov at microsoft.com
Tue Aug 11 22:08:10 CEST 2009


The report makes perfect sense.  Thanks for tracking this down, I'm looking at it now.

From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Vernon Cole
Sent: Tuesday, August 11, 2009 12:05 PM
To: Discussion of IronPython
Subject: Re: [IronPython] [ANN]: IronPython 2.6 Beta 2

I have filed Codeplex Item # 24272 on this issue.  I hope it makes sense -- I had been up way too many hours when I pushed the "send" button.
--
Vernon
On Tue, Aug 11, 2009 at 2:54 AM, Vernon Cole <vernondcole at gmail.com<mailto:vernondcole at gmail.com>> wrote:
No. The setup for the test script fiddles with os.path, but adodbapi itself makes no changes to sys.modules nor os.path.


On Mon, Aug 10, 2009 at 5:29 PM, Dino Viehland <dinov at microsoft.com<mailto:dinov at microsoft.com>> wrote:

Does adodbapi publish something into sys.modules under the name adodbapi during import?



From: users-bounces at lists.ironpython.com<mailto:users-bounces at lists.ironpython.com> [mailto:users-bounces at lists.ironpython.com<mailto:users-bounces at lists.ironpython.com>] On Behalf Of Vernon Cole
Sent: Monday, August 10, 2009 4:21 PM

To: Discussion of IronPython
Subject: Re: [IronPython] [ANN]: IronPython 2.6 Beta 2



Sorry to be slow getting back... I'm on vacation.
In attempting to make a test case as you have requested, I suddenly run in to the following problem:

<console dump>
C:\temp>ipy ipy_bug.py

C:\temp>"c:\program files\Ironpython 2.0.2\ipy.exe" ipy_bug.py
version= adodbapi v2.2.7a1
Executing the command: "select * from Products"
result rowcount shows as= 6. (Note: -1 means "not known")

result data description is:
            NAME TypeCd DispSize IntrnlSz Prec Scale Null?
      ItemNumber      3        4        4   10   255     1
        ItemName    202       12       50  255   255     1
     UnitsOnHand      4        4        4    7   255     1
     CostPerUnit    131       19       19   14     4     1
     LastOrdered      7        8        8  255   255     1

result first ten records are:
(1, 'Widgit', 5.0, Decimal("15.1234"), datetime.datetime(2009, 1, 29, 13, 5, 30)
)
(2, 'Thingamajig, Standard', 505.0, Decimal("0.1000"), datetime.datetime(2009, 1
, 29, 15, 5, 19))
(3, 'Left Handed Smoke Shifter', 1.0, Decimal("1000000.0000"), datetime.datetime
(2008, 4, 1, 12, 0))
(4, 'Gravel (Bulk)', 100.25, Decimal("32.4567"), datetime.datetime(2009, 1, 29,
13, 5, 31))
(5, 'Tube, Drinking, Plastic, For cold liquids', 500000.0, Decimal("0.0013"), da
tetime.datetime(2009, 1, 29, 13, 5, 32))
(6, 'Annoy-A-Tron', 1.0, Decimal("12.9500"), datetime.datetime(2009, 1, 29, 13,
5, 33))

C:\temp>ipy26 ipy_bug.py

C:\temp>"c:\program files\Ironpython 2.6\ipy.exe" ipy_bug.py
version= adodbapi v2.2.7a1
Traceback (most recent call last):
  File "ipy_bug.py", line 52, in ipy_bug.py
AttributeError: 'module' object has no attribute 'adodbapi'
</console dump>

The offending line is:
adodbapi.adodbapi.defaultIsolationLevel = adodbapi.adXactBrowse

I never have understood why it was necessary to use the adodbapi.adodbapi.(whatever) construct, but smarter people than me said that was necessary, and they are correct.  If the redundant-looking entry is not used, the programs runs without an error message, but does not actually perform the intended function. If, for example, the line
adodbapi.adodbapi.defaultCursorLocation = adodbapi.adUseClient
is changed to
adodbapi.defaultCursorLocation = adodbapi.adUseClient
then the program will run, but the rowcount will return as -1, rather than 6, because the cursor is not actually changed to a local cursor.

So, to make a long story short: some change in IPy 2.6 has broken a needed (if ugly looking) feature in adodbapi.
I will file a bug in codeplex as soon as I can isolate a good example.
--
Vernon



On Mon, Aug 3, 2009 at 5:33 PM, Dino Viehland <dinov at microsoft.com<mailto:dinov at microsoft.com>> wrote:

Ok, I've finally got SQL server setup in a reasonable state where I can try and repro this.  This is what I'm trying to do.  I have a database called "mydatabase" which contains a table "Table_1" which contains 1 column of type binary(4).  I then attempt to do:



import System

conn = System.Activator.CreateInstance(System.Type.GetTypeFromProgID("ADODB.Connection"))

connstr = "driver={SQL Server};Server=localhost;Database=mydatabase;Initial Catalog=mydatabase;Trusted_Connection=True;"

conn.ConnectionString = connstr

conn.Open()



rs = System.Activator.CreateInstance(System.Type.GetTypeFromProgID("ADODB.RecordSet"))

rs.Open("Table_2", conn, 1, 2, 2)  # source, active connection, cursor type (adOpenKeyset), lock type (adLockPessimistic), CommmandType (adCmdTable)

rs.AddNew()

b = System.Array[System.Byte]((2,3,4,5))

x = rs['Test1']

x.AppendChunk(b)



which fails with:



EnvironmentError: System.Runtime.InteropServices.COMException (0x800A0C93): Operation is not allowed in this context.



This is the same failure I get if I use Shri's proposed work around.  Do you have any idea of what I'm doing wrong or any suggestions on how to tweak this to get the correct simple repro?



From: users-bounces at lists.ironpython.com<mailto:users-bounces at lists.ironpython.com> [mailto:users-bounces at lists.ironpython.com<mailto:users-bounces at lists.ironpython.com>] On Behalf Of Vernon Cole
Sent: Thursday, July 23, 2009 10:11 PM
To: Discussion of IronPython
Subject: Re: [IronPython] [ANN]: IronPython 2.6 Beta 2



Guys:
  Good work on the new release, and the 215 bug fixes. As usual, as soon as the new beta was announced I downloaded and tested it.

Somehow I got the idea that the adodbapi test had been included in the IronPython test suite. Did you only include the tests that already pass?  Issue 18222 is still unfixed -- so adodbapi still fails, and you still cannot pass a read-only buffer as a COM parameter.

I realize that no one has voted up this rather obscure bug. Perhaps if it were titled "fully support DB API 2.0 compliant database access using ADO" it would have gotten more votes. Nevertheless, this issue has been outstanding for 11 months, and is the only remaining failure in adodbapi for versions 2.3 thru 3.1 of python. Please try to get to it before 2.6 final.

Please !!!???
--
Vernon Cole

P.S. -- I plan to make a version of adodbapi which uses real ADO.NET<http://ADO.NET>, rather than ADO via COM, but I want the current version to be solid before I start mucking it up.

_______________________________________________
Users mailing list
Users at lists.ironpython.com<mailto:Users at lists.ironpython.com>
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com



_______________________________________________
Users mailing list
Users at lists.ironpython.com<mailto:Users at lists.ironpython.com>
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20090811/0c350f03/attachment.html>


More information about the Ironpython-users mailing list