The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/local/bin/perl
#
# 	@(#)ct_cursor.pl	1.1	9/19/95
#
# Example of ct_cursor() usage.

use Sybase::CTlib;

$d = new Sybase::CTlib mpeppler;

$d->ct_cursor(CS_CURSOR_DECLARE, 'cursor_eg',
	      'select * from master.dbo.sysprocesses',
	      CS_READ_ONLY) == CS_SUCCEED || die;
$d->ct_cursor(CS_CURSOR_ROWS, undef, undef, 5) == CS_SUCCEED || die;
$d->ct_cursor(CS_CURSOR_OPEN, undef, undef, CS_UNUSED) == CS_SUCCEED || die;
$d->ct_send();
while($d->ct_results($restype) == CS_SUCCEED)
{
    print "$restype\n";
    
    next if($restype != CS_ROW_RESULT &&
	    $restype != CS_PARAM_RESULT &&
	    $restype != CS_STATUS_RESULT &&
	    $restype != CS_CURSOR_RESULT &&
	    $restype != CS_COMPUTE_RESULT);

    while(%dat = $d->ct_fetch(1))
    {
	foreach (keys(%dat))
	{
	    print "$_: $dat{$_}\n";
	}
	print "\n";
    }
}

$d->ct_cursor(CS_CURSOR_CLOSE, undef, undef, CS_DEALLOC) == CS_SUCCEED || die;
$d->ct_send;
while($d->ct_results($restype) == CS_SUCCEED)
{
    print "$restype\n";
    
    next if($restype != CS_ROW_RESULT &&
	    $restype != CS_PARAM_RESULT &&
	    $restype != CS_STATUS_RESULT &&
	    $restype != CS_CURSOR_RESULT &&
	    $restype != CS_COMPUTE_RESULT);

    while(@dat = $d->ct_fetch(1))
    {
	print "@dat\n";
    }
}