[python-sybase] Can't set_property()
Dave Cole
djc at object-craft.com.au
Fri Sep 23 16:04:16 EST 2005
skip at pobox.com wrote:
> skip> What am I doing wrong here?
>
> ...
> >>>> conn.set_property(Sybase.CS_APPNAME, "foo")
> ...
> skip> ct_con_props(SET,APPNAME): user api layer: external error: This property
> skip> cannot be set after a connection to a server has been established.
>
> Looking at the Open Client docs on the Sybase site it says that CS_APPNAME
> and CS_HOSTNAME are login properties that take effect "only if set before
> the connection is established". I eventually figured out that a change was
> needed to Sybase.Connection.__init__. here's a udiff against 0.37:
>
> --- Sybase.py.~1~ 2005-04-06 17:46:43.000000000 -0500
> +++ Sybase.py 2005-09-22 11:49:58.849060000 -0500
> @@ -836,7 +836,8 @@
> class Connection:
>
> def __init__(self, dsn, user, passwd, database = None,
> - strip = 0, auto_commit = 0, delay_connect = 0, locking = 1):
> + strip = 0, auto_commit = 0, delay_connect = 0, locking = 1,
> + appname = "", hostname = ""):
> '''DB-API Sybase.Connect()
> '''
> self._conn = self._cmd = None
> @@ -863,6 +864,14 @@
> status = conn.ct_con_props(CS_SET, CS_PASSWORD, passwd)
> if status != CS_SUCCEED:
> self._raise_error(Error, 'ct_con_props')
> + if appname:
> + status = conn.ct_con_props(CS_SET, CS_APPNAME, appname)
> + if status != CS_SUCCEED:
> + self._raise_error(Error, 'ct_con_props')
> + if hostname:
> + status = conn.ct_con_props(CS_SET, CS_HOSTNAME, hostname)
> + if status != CS_SUCCEED:
> + self._raise_error(Error, 'ct_con_props')
> if not delay_connect:
> self.connect()
>From this page:
http://www.object-craft.com.au/projects/sybase/sybase/module-Sybase.html
db = Sybase.connect('SYBASE', 'sa', '', delay_connect = 1)
db.set_property(Sybase.CS_HOSTNAME, 'secret')
db.connect()
The delay_connect argument tells the Connection object not to connect to
the server immediately. This allows you to set properties then connect
using the connect() method.
- Dave
--
http://www.object-craft.com.au
More information about the Python-sybase
mailing list