declare cursor (stored procedure)

Description

Declares a cursor for a stored procedure.

Syntax

exec sql declare cursor_name 
 cursor for execute procedure_name 
 ([[@param_name =]:host_var]
 [,[@param_name =]:host_var]…)

Parameters

cursor_name

The cursor’s name, used to reference the cursor in open, fetch, and close statements. A cursor’s name must be unique on each connection and must have no more than 255 characters.

procedure_name

The name of the stored procedure to be executed.

param_name

The name of a parameter in the stored procedure.

host_var

The name of a host variable to be passed as a parameter value.

Examples

Example 1

main()
{
  exec sql begin declare section;
     CS_CHAR        b_titleid[7];
     CS_CHAR        b_title[65];
     CS_CHAR        b_type[13];
  exec sql end declare section;
    long        SQLCODE;
  exec sql connect “sa”;
  exec sql use pubs2;
  exec sql 
    create procedure p_titles 
      (@p_type varchar(30)) as 
      select title_id, substring(title,1,64)
        from titles
        where type like @p_type;
  exec sql declare titlelist cursor for
    execute p_titles (:b_type);
  strcpy(b_type, "business");
  exec sql open titlelist;
  for (;;)
  {
    exec sql fetch titlelist into :b_titleid,
      :b_title;
    if (SQLCODE == 100)
      break;
      printf("   %-8s %s\n", b_titleid, b_title);
  }
  exec sql close titlelist;
  exec sql disconnect all;
}

Usage

See also

close, deallocate cursor, declare cursor (static), declare cursor (dynamic), fetch, open, update