Sybase has a odbc parameter called "Compress" that is disabled by default. It's very useful if you're running queries on something with slow network transfer speeds and large datasets.
Example: Compress = yes
This improve the performance of my query by about 40%.
The first error message I received was: sqlanydb.InterfaceError: Could not load dbcapi. Tried: dbcapi.dll,libdbcapi_r.so,libdbcapi_r.dylib Exception AttributeError: "'Root' object has no attribute 'api'" in <bound method Root.__del__ of <sqlanydb.Root object at 0x3061150>> ignored
This error is resolved by creating a file called "/etc/ld.so.conf.d/sqlanywhere.conf" and adding a line with "/opt/sqlanywhere12/lib64". Then you will need to run ldconfig -v.
The error message in the title occurred on Ubuntu because unixODBC was unable to find all of the libraries it needed to run.
It will show there are a bunch of missing files. The issue was resolved when isql was run from the /opt/sqlanywhere12/bin64 directory. This indicated that it's not looking in the right place for the library files. Run the following: export LD_LIBRARY_PATH='/opt/sqlanywhere12/lib64' Not having the environmental variable above will also cause "sqlanydb.InterfaceError: dbcapi version 1 required." if you're using python's sqlanydb library.
It will give a "file not found" error if you try using bin32/lib32 files on a 64 bit system. Make sure you use the bin64/lib64 files in the "Driver=" fild in your /etc/odbc.ini file (if you're using a 64 bit system)!
Now you will receive an error saying "Parse error: DSN does not exist". You need to add an ODBC_INI environmental variable to where your DSNs are defined. I ran the following: export ODBC_INI='/etc/odbc.ini'
To make those variables we exported work system-wide and continue to work even after we log out:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
if Event.query.filter(db.and_(Event.location == form.location.data, Event.start.between(form.start.data, form.end.data), Event.id != request.args.get('id'))).first(): # exclude ID from query
raise wtforms.validators.ValidationError('Start time conflicts with another request for the same time.')
I came across this error when I was trying to make a custom validator in Flask-Admin with wtforms form objects.
This code didn't work: def location_must_not_conflict(form, field): if Event.query.filter(Event.location == form.location).first(): raise wtforms.validators.ValidationError('Location conflicts with another request for the same venue.')
Because I was using form.location and not form.location.data.
This will work: def location_must_not_conflict(form, field): if Event.query.filter(Event.location == form.location.data).first(): raise wtforms.validators.ValidationError('Location conflicts with another request for the same venue.')