Fix for bug "#1000444 Table names repeated in BDE with usedeclarefetch=1", courtesy...
authorDave Page <dpage@pgadmin.org>
Mon, 28 Nov 2005 11:01:35 +0000 (11:01 +0000)
committerDave Page <dpage@pgadmin.org>
Mon, 28 Nov 2005 11:01:35 +0000 (11:01 +0000)
statement.c

index 981e86bd2458d62c01b2145a388c950f4b2f5822..e4431e1a5f93bc2d978a082bbd7f795947b3d0c9 100644 (file)
@@ -343,7 +343,7 @@ SC_Destructor(StatementClass *self)
    }
 
    SC_initialize_stmts(self, TRUE);
-    SC_free_params(self, STMT_FREE_PARAMS_ALL);
+   SC_free_params(self, STMT_FREE_PARAMS_ALL);
 
         /* Free the parsed table information */
    if (self->ti)
@@ -370,11 +370,11 @@ SC_Destructor(StatementClass *self)
    if (self->callbacks)
        free(self->callbacks);
     
-    GDATA_unbind_cols(SC_get_GDTI(self), TRUE);
+   GDATA_unbind_cols(SC_get_GDTI(self), TRUE);
 
    DELETE_STMT_CS(self);
-    if (self->pdata_info.pdata != 0)
-        free(self->pdata_info.pdata);
+   if (self->pdata_info.pdata != 0)
+       free(self->pdata_info.pdata);
    free(self);
 
    mylog("SC_Destructor: EXIT\n");
@@ -951,7 +951,7 @@ SC_fetch(StatementClass *self)
        SC_set_Result(self,res);
    }
 
-    coli = QR_get_fields(res); /* the column info */
+   coli = QR_get_fields(res);  /* the column info */
    mylog("manual_result = %d, use_declarefetch = %d\n", self->manual_result, ci->drivers.use_declarefetch);
 
    if (self->manual_result)
@@ -1061,11 +1061,11 @@ SC_fetch(StatementClass *self)
            mylog("type = %d\n", type);
 
            if (self->manual_result)
-           {\r
-                if (ci->drivers.use_declarefetch)
-                   value = QR_get_value_manual(res, (self->currTuple >= ci->drivers.fetch_max) ? (self->currTuple % ci->drivers.fetch_max) : self->currTuple, lf);\r
-                else\r
-                    value = QR_get_value_manual(res, self->currTuple, lf);
+           {
+               if ((ci->drivers.use_declarefetch) && (self->currTuple >= QR_get_num_total_tuples(res)))
+                   value = QR_get_value_manual(res, (self->currTuple >= ci->drivers.fetch_max) ? (self->currTuple % ci->drivers.fetch_max) : self->currTuple, lf);
+                       else
+                   value = QR_get_value_manual(res, self->currTuple, lf);
                mylog("manual_result\n");
            }
            else if (SC_is_fetchcursor(self))