On Feb 18, 2009, at 2:23 AM, Frank Millman wrote:

>
> Hi all
>
> I have not used SQLAlchemy before. I am comfortable with SQL and enjoy
> the feeling of being in control. However, I can see that SA does bring
> some major benefits, particularly in hiding the differences between
> the dialects of various databases.
>
> Before making a decision about switching to SA, I would like to
> describe something I use a lot, and would like to know how SA handles
> this, if at all.
>
> My application supports PostgreSQL and MS-SQL. Both of these databases
> have the concept of a 'scrollable cursor'. AFAICT the DB-API does not
> support this concept, so I manage it by executing the relevant SQL
> commands directly.
>
> The commands include the ability to DECLARE the cursor, MOVE n rows
> backwards or forwards, MOVE to the beginning or end of the cursor,
> FETCH n rows or -n rows from an absolute position or relative
> position, etc.
>
> I use the cursors in read-only mode, and maintain separate lists of
> any inserts/updates/deletes to the cursor to keep an up-to-date view.
>
> It is a little complex, and there are some syntax differences between
> PostgreSQL and MS-SQL, but overall it works well. The major benefit,
> of course, is that I can give the appearance of presenting a full
> table to the user, but only select the rows in small chunks, which is
> a huge performance benefit for very large tables.
>
> Does SQLAlchemy have anything built-in to support this concept?

SQLA does not provide any direct support or abstractions over  
scrollable cursors.    If you had a SQLAlchemy application and wanted  
to access these methods, you can get access to the DBAPI connection as  
well as a cursor, but the operations would not be integrated with the  
rest of the API.

SQLA, as well as most other data abstraction tools outside of .NET,  
provide the "standard" way to go about presenting a "window" on a  
table by using LIMIT/OFFSET, which both postgres and mysql support  
natively.   These methods also work better for the typical web  
application flow since the approach is essentially stateless, whereas  
a scrollable cursor is very stateful.


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

Reply via email to