[unixODBC-support] Problem in using cursor to fetch millions of rows
nick.gorham at easysoft.com
Wed Apr 6 18:12:45 BST 2005
Jerry Lam wrote:
>I would like to know how can I use the cursor such that it returns me 1 row at a time? My problem is that I'm using tclodbc which is an odbc layer on top of tcl and it makes call to unixodbc for SQL execution.
>My table has some millions of rows, when I try the following, (sorry it is in tcl but it is very easy to follow) it will consume all the memory in my machine and force it to return error. How can I effectively use cursor to just ask to return 1 row at a time?
>Thank you very much,
>% package require tclodbc
>% database db "DRIVER=PostgreSQL;Servername=localhost;UID=xxx,PWD=xxx;Database=bar"
>% db set autocommit 0
>% db statement stmt "select * from foo"
>% stmt set maxlength 200
>% stmt set maxrows 1
>% stmt execute
I would guess its down to TCL, all unixODBC will do is ask the driver
what the app wants, it certainly won't store rows in memory. I would
expect thats being done in the tclodbc layer.
More information about the unixODBC-support