uploading binary file - ODBC (SapDB)
M.-A. Lemburg
mal at lemburg.com
Thu Feb 20 06:30:45 EST 2003
Dan Fratean wrote:
> OnThanks. It works. Somehow. But it truncates my binary data. Maybe
> because of that special characters? I don't know why. Used that example
> from sapdb.org, tried some more combinations, and still the same
> problem. I made a 'hello world' program in C, and tried to upload it
> into a long byte column. In this way I could upload the first 6 bytes:
> 'ELF'. But that's all. Any ideas?
Make sure you are using LONG BYTE as column type.
> Thanks in anticipation.
>
> Thu, 2003-02-20 at 11:13, Daniel Dittmar wrote:
>
>>Dan Fratean wrote:
>>
>>>I am trying to find a way to upload a binary file into a field from a
>>>database. Can anyone give me some ideas? I can take the file, parse it
>>>and escape the special characters, but I don't like this idea. Better
>>>I would use streams, eventually a persistent ODBC connection. Can
>>
>>Extrapolating the file contents into the SQL isn't a good idea as you
>>noticed
>>- there is a maximum size for SQL statements (configuration dependent)
>>- this doesn't work at all for UPDATE statements
>>
>>Use parameters instead.
>>
>>If you use mxODBC, the following should work:
>>data = open (fname, 'rb').read ()
>>cursor.execute ("insert into sometable (keycol, longcol) values (?, ?)",
>>[keyval, data])
>>
>>I don't know if mxODBC supports the putchunk and getchunk functionality of
>>ODBC.
Yes. BLOBs are no problem at all -- for any database/ODBCdriver
combo that supports these (most do in some way).
>>You could also use the SAPDB python modules, which allow you to pass streams
>>as parameters so there is no need to load the whole data into memory.
>>
>>An example for the native module sapdb.sql is at
>>http://www.sapdb.org/7.4/longtest.py.html.
>>
>>An example using the DB API compatible sapdb.dbapi:
>># pass the read method, not the read data
>>reader = open (fname, 'rb').read
>>cursor.execute ("insert into sometable (keycol, longcol) values (?, ?)",
>>[keyval, reader])
>>
>>Daniel
>>
>>
>>
>>--
>>http://mail.python.org/mailman/listinfo/python-list
--
Marc-Andre Lemburg
eGenix.com
Professional Python Software directly from the Source (#1, Feb 20 2003)
>>> Python/Zope Products & Consulting ... http://www.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/
________________________________________________________________________
Python UK 2003, Oxford: 40 days left
EuroPython 2003, Charleroi, Belgium: 124 days left
More information about the Python-list
mailing list