Обсуждение: Operations widh CURSORS
Hi, Is it possible to declare 2 cursors in the same transaction? I am issuing a "BEGIN WORK" statement, after that I am issuing "DECLARE c_cursor FOR SELECT * FROM table". When, after that, I issue "DECLARE c_cursor1 FOR SELECT COUNT(*) FROM table" I get a segmentation fault. Is there a way to avoid this and still be able to open 2 cursors in the same transaction? Thanks a lot. Marcos Castro email: mbdecastro@yahoo.com __________________________________________________ Do You Yahoo!? Yahoo! Photos -- now, 100 FREE prints! http://photos.yahoo.com
Hey All, I was wondering if anyone had an example of writing a recipe database that I could take a look at. I am by no means a db programmer but I would like to give it a shot. What i am trying to do is somthing like: Pie $3.70 1/4 cup sugar @ $1.10 1 pie crust @ $.60 3 apples @ $2.00 Any help would be greatly appreciated, Thanks, Harry Hoffman Manager - Information Technology Restaurants Unlimited Inc. 206.634.3082 x. 270
Marcos Barreto de Castro <mbdecastro@yahoo.com> writes: > I am issuing a "BEGIN WORK" statement, after that I > am issuing "DECLARE c_cursor FOR SELECT * FROM table". > When, after that, I issue "DECLARE c_cursor1 FOR > SELECT COUNT(*) FROM table" I get a segmentation > fault. Seems to work fine for me ... what version are you using? regards, tom lane regression=# create table foo(f1 int); CREATE regression=# insert into foo values(1); INSERT 277673 1 regression=# insert into foo values(2); INSERT 277674 1 regression=# insert into foo values(3); INSERT 277675 1 regression=# insert into foo values(4); INSERT 277676 1 regression=# begin; BEGIN regression=# DECLARE c_cursor CURSOR FOR SELECT * FROM foo; SELECT regression=# DECLARE c_cursor1 CURSOR FOR SELECT count(*) FROM foo; SELECT regression=# fetch 1 from c_cursor; f1 ---- 1 (1 row) regression=# fetch 1 from c_cursor1; count ------- 4 (1 row) regression=# fetch 1 from c_cursor; f1 ---- 2 (1 row) regression=# fetch 1 from c_cursor; f1 ---- 3 (1 row) regression=# fetch 1 from c_cursor; f1 ---- 4 (1 row) regression=# fetch 1 from c_cursor1; count ------- (0 rows) regression=# fetch 1 from c_cursor; f1 ---- (0 rows) regression=# end; COMMIT
Marcos Barreto de Castro wrote: > Hi, > > Is it possible to declare 2 cursors in the same > transaction? > I am issuing a "BEGIN WORK" statement, after that I > am issuing "DECLARE c_cursor FOR SELECT * FROM table". > When, after that, I issue "DECLARE c_cursor1 FOR > SELECT COUNT(*) FROM table" I get a segmentation > fault. > Is there a way to avoid this and still be able to > open 2 cursors in the same transaction? > Thanks a lot. > > Marcos Castro > email: mbdecastro@yahoo.com > > __________________________________________________ > Do You Yahoo!? > Yahoo! Photos -- now, 100 FREE prints! > http://photos.yahoo.com You do not need to declare your cursors inside your transaction. A cursor is like a kind of data structure : you declare it and then you use it at will whenever you need it. <Declare cursors here> BEGIN WORK; -- Open cursors here -- Work with cursors here -- COMMIT or ROLLBACK, depending on the outcome of your program Jurgen Defurne defurnj@glo.be
Shouldn't be a problem, but the approach depends on how you would like to access the data later. Will you be storing the methods/steps as well? Will you need to link it (loosely) to something else - say procurement and sales? Or it's just recipes. Because it's quite different if you later want to find out: We sold X number of various products. Based on the recipes we should have used Y raw materials. Compare this with what we're buying. etc etc. vs. I just want to look up recipes given some keywords. Cheerio, Link. At 09:06 AM 02-06-2000 -0700, moebius@ip-solutions.net wrote: >Hey All, > I was wondering if anyone had an example of writing a recipe database >that I could take a look at. I am by no means a db programmer but I would >like to give it a shot. What i am trying to do is somthing like: >Pie $3.70 > 1/4 cup sugar @ $1.10 > 1 pie crust @ $.60 > 3 apples @ $2.00 >Any help would be greatly appreciated, >Thanks, > >Harry Hoffman >Manager - Information Technology >Restaurants Unlimited Inc. >206.634.3082 x. 270 > > > >