On Jan 26, 2010, at 11:46 PM, dan wrote:

> I am having some problems using this approach. How should I use the
> class STAsText in the GisElement.wkt property (example below)?
> My current attempts are not working... it seems that the correct
> statement is generated "SELECT :param_1.STAsText()", but the Geography
> instance is not being passed as a parameter, i.e. the parameters list
> is empty.
> 
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> example script snippets
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> @compiles_as_bound
> class STAsText(FunctionElement):
>    name = 'STAsText'
> 
> class GisElement(object):
>    """Represents a geometry value."""
>    @property
>    def wkt(self):
>        return STAsText(literal(self, Geography)).select()
> 
> #...
> print session.scalar(r1.road_geom.wkt)

oh.   yeah part of the recipe I gave you has something like this:   "%s" % 
(someelement).   call compiler.process(someelement) to get the correct bind 
parameter representation.



> 
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Error messages
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 2010-01-27 12:25:16,904 INFO sqlalchemy.engine.base.Engine.0x...4270
> SELECT :param_1.STAsText()
> 2010-01-27 12:25:16,904 INFO sqlalchemy.engine.base.Engine.0x...4270
> []
> Traceback (most recent call last):
>  File ".\sql_server_spatial.py", line 514, in <module>
>    print session.scalar(r1.road_geom.as_wkt)
>  File "c:\python25\lib\site-packages\SQLAlchemy-0.6beta1dev-py2.5.egg
> \sqlalchemy\orm\session.py", line 742, in scalar
>    return self.execute(clause, params=params, mapper=mapper,
> **kw).scalar()
>  File "c:\python25\lib\site-packages\SQLAlchemy-0.6beta1dev-py2.5.egg
> \sqlalchemy\orm\session.py", line 737, in execute
>    clause, params or {})
>  File "c:\python25\lib\site-packages\SQLAlchemy-0.6beta1dev-py2.5.egg
> \sqlalchemy\engine\base.py", line 1043, in execute
>    return Connection.executors[c](self, object, multiparams, params)
>  File "c:\python25\lib\site-packages\SQLAlchemy-0.6beta1dev-py2.5.egg
> \sqlalchemy\engine\base.py", line 1105, in _execute_clauseelement
>    return self.__execute_context(context)
>  File "c:\python25\lib\site-packages\SQLAlchemy-0.6beta1dev-py2.5.egg
> \sqlalchemy\engine\base.py", line 1128, in __execute_context
>    self._cursor_execute(context.cursor, context.statement,
> context.parameters[0], context=context)
>  File "c:\python25\lib\site-packages\SQLAlchemy-0.6beta1dev-py2.5.egg
> \sqlalchemy\engine\base.py", line 1190, in _cursor_execute
>    self._handle_dbapi_exception(e, statement, parameters, cursor,
> context)
>  File "c:\python25\lib\site-packages\SQLAlchemy-0.6beta1dev-py2.5.egg
> \sqlalchemy\engine\base.py", line 1188, in _cursor_execute
>    self.dialect.do_execute(cursor, statement, parameters,
> context=context)
>  File "c:\python25\lib\site-packages\SQLAlchemy-0.6beta1dev-py2.5.egg
> \sqlalchemy\engine\default.py", line 220, in do_execute
>    cursor.execute(statement, parameters)
> sqlalchemy.exc.ProgrammingError: (ProgrammingError) ('42000', "[42000]
> [Microsoft][SQL Native Client][SQL Server]Incorrect syntax near ':'.
> (102) (SQLExecDirectW)") u'SELECT :param_1.STAsText()' []
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/sqlalchemy?hl=en.
> 

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to