summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfoobar <sniper@php.net>2003-08-28 16:19:08 +0000
committerfoobar <sniper@php.net>2003-08-28 16:19:08 +0000
commit2811f9293d6c5838e26f456b8eb94f77289ae708 (patch)
tree8b90572da0d9a177d6b06a4db5638274a448c403
parentdd8aadedf5b3185247865cd2975396b074003980 (diff)
downloadphp-git-2811f9293d6c5838e26f456b8eb94f77289ae708.tar.gz
MFB
-rw-r--r--ext/sybase_ct/php_sybase_ct.c15
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;