diff options
author | foobar <sniper@php.net> | 2003-08-28 16:19:08 +0000 |
---|---|---|
committer | foobar <sniper@php.net> | 2003-08-28 16:19:08 +0000 |
commit | 2811f9293d6c5838e26f456b8eb94f77289ae708 (patch) | |
tree | 8b90572da0d9a177d6b06a4db5638274a448c403 | |
parent | dd8aadedf5b3185247865cd2975396b074003980 (diff) | |
download | php-git-2811f9293d6c5838e26f456b8eb94f77289ae708.tar.gz |
MFB
-rw-r--r-- | ext/sybase_ct/php_sybase_ct.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/ext/sybase_ct/php_sybase_ct.c b/ext/sybase_ct/php_sybase_ct.c index 6e9b170186..7404474dac 100644 --- a/ext/sybase_ct/php_sybase_ct.c +++ b/ext/sybase_ct/php_sybase_ct.c @@ -1384,8 +1384,21 @@ static void php_sybase_query (INTERNAL_FUNCTION_PARAMETERS, int buffered) case CS_CURSOR_RESULT: case CS_PARAM_RESULT: case CS_ROW_RESULT: - /* Unexpected results, cancel them. */ + if (status != Q_RESULT) { + result = php_sybase_fetch_result_set(sybase_ptr, buffered, store); + if (result == NULL) { + ct_cancel(NULL, sybase_ptr->cmd, CS_CANCEL_ALL); + sybase_ptr->dead = 1; + RETURN_FALSE; + } + status = Q_RESULT; + } else { + /* Unexpected results, cancel them. */ + ct_cancel(NULL, sybase_ptr->cmd, CS_CANCEL_CURRENT); + } + break; case CS_STATUS_RESULT: + /* Unexpected results, cancel them. */ ct_cancel(NULL, sybase_ptr->cmd, CS_CANCEL_CURRENT); break; |