On 09/28/2016 02:32 AM, jonathan.schu...@gmail.com wrote:
Usual apologies for newbie question...

I'm trying to use SQLAlchemy to insert data into a MSSQL DB with columns
of type VARBINARY(MAX). The only way I could find to avoid the error message

     Implicit conversion from data type varchar to varbinary(max) is not
    allowed. Use the CONVERT function to run this query.

wais to wrap the bound column in CONVERT(VARBINARY(MAX), ...). This
however creates problems when I want to use the same code on other
database types. I guess I could work around this issue by manually
checking the database dialect, but since one purpose of SQLAlchemy
appears to be to help write DB agnostic code, I would hope that this
problem could be solved in a cleaner way.

Many thanks for any suggestions.

if you are getting that error on INSERT it sounds like there are driver issues involved (e.g. pymssql, pyodbc). For an INSERT you should not get that error; using the VARBINARY SQLAlchemy type, SQLAlchemy calls upon a construct provided by your DBAPI (e.g., the driver) called Binary(). This is a wrapper that is intended to signal to the driver that this value is not a character string, it's bytes. Internally the driver should be doing this step.

For here we'd look to see what driver you're using, if changing drivers resolves, and as always a small and self-contained reproducing test case. For a driver issue I'd then look to convert the test case to be using the DB driver alone, then we send a bug report to that driver.



--
You received this message because you are subscribed to the Google
Groups "sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to sqlalchemy+unsubscr...@googlegroups.com
<mailto:sqlalchemy+unsubscr...@googlegroups.com>.
To post to this group, send email to sqlalchemy@googlegroups.com
<mailto:sqlalchemy@googlegroups.com>.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to