[Migrated content. Thread originally posted on 12 August 2008]Hello,
I'm new to AcuSQL and I have a question about cursors. I'm trying to write a program that takes a query string from the user, declares a cursor for a select statement, and fetches the results returned by the query. I've managed to do this successfully.
The problem occurs when I try run a second query, using a different user-supplied string. The results returned by the second query are identical to the first set of results. The third time I try it, I get the error message "Duplicate cursor name".
I declare, open, and then close the cursor every time, in addition to preparing the statement, but it seems that the cursor (or the prepared statement) doesn't get completely closed.
My question is this: Is it possible to free the cursor in order to reuse it for a different query? Or am I just going about it the wrong way?
Here's the code I'm using:
* run query using user-supplied string query-d1
prepare user-query from :query-d1
declare cursor-q cursor for user-query
* fill listbox
perform until sqlcode not = 0
fetch cursor-q into :h-record
if sqlcode = 0
move h-id to id-c1
move h-oms to oms-c1
move h-ind to ind-c1