Two more ideas:

1) Try passing a list of numbers.  You can trivially get this from the
buffer by saying
a = map(lambda c: ord(c), buf)
2) Try passing a BCL array of bytes.  This is almost as easy:
import System
a = System.Array[System.Byte](map(lambda c: ord(c), b))

On Wed, Aug 27, 2008 at 7:36 PM, Vernon Cole <[EMAIL PROTECTED]> wrote:

> I tried both
> p.AppendChunk(str(elem))
> and
> p.AppendChunk(unicode(elem))
> both of which work, but then the execution fails with:
> <console output>
>    File "C:\Program Files\IronPython 2.0
> Beta4\lib\site-packages\adodbapi\adodbapi.py", line 675, in _executeHelper
>     rs = self.cmd.Execute(ra)
>  EnvironmentError: The field is too small to accept the amount of data you
> attempted to add.  Try inserting or pasting less data.
> -- on command: "INSERT INTO tblTemp (fldId,fldData) VALUES (?,?)"
> -- with parameters: (2, <read-only buffer for 0x000000000000003A, size 4,
> offset
>  0 at 0x000000000000003B>)
> </console output>
> which lead me to believe that I'm not giving .AppendChunk() the argument it
> expects.
>
> I even tried
> p.Value = elem
> which results in:
>  StandardError: Exception has been thrown by the target of an invocation.
>
> --
> Vernon
>
>
> On Wed, Aug 27, 2008 at 7:40 PM, Curt Hagenlocher <[EMAIL PROTECTED]>wrote:
>
>> This will probably need to be a string.  I don't think we do any automatic
>> conversions of buffer objects for CLR or COM calls.
>>
>> On Wed, Aug 27, 2008 at 6:28 PM, Vernon Cole <[EMAIL PROTECTED]>wrote:
>>
>>> Dear miracle workers:
>>>   This may actually be the last failed unittest for adodbapai. Progress
>>> has been remarkable.
>>> Can you help with one more?
>>>
>>> Situation: filling in the parameter list for an ADO execute.  The second
>>> parameter (parameter 1) is a python "buffer" to be loaded into a binary(4)
>>> column.
>>> "elem" contains the value of the parameter.
>>> "p" is the parameter object.
>>> Pywin32 uses p.AppendChunk successfully to pass the buffer to SQL, but
>>> Iron objects:
>>>
>>> <console output>
>>> DatabaseError:
>>> --ADODBAPI
>>> -- Trying parameter 1 = <read-only buffer for 0x000000000000003A, size 4,
>>> offset
>>>  0 at 0x000000000000003B>
>>> Traceback (most recent call last):
>>>    File "C:\Program Files\IronPython 2.0
>>> Beta4\lib\site-packages\adodbapi\adodba
>>> pi.py", line 659, in _executeHelper
>>>     p.AppendChunk(elem)
>>>  TypeError: Specified cast is not valid.
>>> -- on command: "INSERT INTO tblTemp (fldId,fldData) VALUES (?,?)"
>>> -- with parameters: (2, <read-only buffer for 0x000000000000003A, size 4,
>>> offset
>>>  0 at 0x000000000000003B>)
>>> </console output>
>>>
>>> What coercion should be supplied to make AppendChunk happy to accept the
>>> buffer contents without trying to cast it?
>>> --
>>> Vernon Cole
>>>
>>>
>>>
>>> _______________________________________________
>>> Users mailing list
>>> [email protected]
>>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>>>
>>>
>>
>> _______________________________________________
>> Users mailing list
>> [email protected]
>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>>
>>
>
> _______________________________________________
> Users mailing list
> [email protected]
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>
_______________________________________________
Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to