Date: Wednesday, March 8, 2006 @ 20:05:00
  Author: marc
    Path: /cvsroot/carob/odbsequoia/src

Modified: descriptors.cpp (1.4 -> 1.5) descriptors_records.cpp (1.2 ->
          1.3) descriptors_records.hpp (1.4 -> 1.5)

SQLFetch() returns SQL_SUCCESS_WITH_INFO when at least one colum does so.


-------------------------+
 descriptors.cpp         |    8 +++++---
 descriptors_records.cpp |    5 +++--
 descriptors_records.hpp |    2 +-
 3 files changed, 9 insertions(+), 6 deletions(-)


Index: odbsequoia/src/descriptors.cpp
diff -u odbsequoia/src/descriptors.cpp:1.4 odbsequoia/src/descriptors.cpp:1.5
--- odbsequoia/src/descriptors.cpp:1.4  Wed Mar  8 18:57:24 2006
+++ odbsequoia/src/descriptors.cpp      Wed Mar  8 20:05:00 2006
@@ -105,6 +105,8 @@
 {
     // FIXME: work in progress, not even half-implemented
 
+    SQLRETURN ret = SQL_SUCCESS;
+
     int rs_col_end = rs.getNumberOfColumns() + 1;
 
     std::vector<BaseDescRecord *>::const_iterator rec_col = records.begin();
@@ -118,8 +120,8 @@
         {
             AppDescRecord& record = * static_cast<AppDescRecord *>(*rec_col);
 
-            record.fetch_col(rs, rs_col);
-
+            if (SQL_SUCCESS != record.fetch_col(rs, rs_col))
+                ret = SQL_SUCCESS_WITH_INFO;
         }
     }
 
@@ -128,7 +130,7 @@
     //     Unfortunately we should have reported this error at SQLBindCol() 
time
 
 
-    return SQL_SUCCESS;
+    return ret;
 }
 
 /*
Index: odbsequoia/src/descriptors_records.cpp
diff -u odbsequoia/src/descriptors_records.cpp:1.2 
odbsequoia/src/descriptors_records.cpp:1.3
--- odbsequoia/src/descriptors_records.cpp:1.2  Wed Mar  8 18:57:24 2006
+++ odbsequoia/src/descriptors_records.cpp      Wed Mar  8 20:05:00 2006
@@ -55,7 +55,7 @@
     return SQL_SUCCESS;
 }
 
-void
+SQLRETURN
 AppDescRecord::fetch_col(CarobNS::DriverResultSet& rs, int rs_col)
 {
     if (rs.isNull(rs_col))
@@ -66,7 +66,7 @@
                                   L"because indicator_ptr is null");
    
         * indicator_ptr = SQL_NULL_DATA;
-        return;
+        return SQL_SUCCESS;
     }
 
     // case (type == SQL_C_INT)
@@ -74,6 +74,7 @@
     if (octet_length_ptr != 0)
         * octet_length_ptr = sizeof(int);
 
+    return SQL_SUCCESS;
 }
 /*
  * Local Variables:
Index: odbsequoia/src/descriptors_records.hpp
diff -u odbsequoia/src/descriptors_records.hpp:1.4 
odbsequoia/src/descriptors_records.hpp:1.5
--- odbsequoia/src/descriptors_records.hpp:1.4  Wed Mar  8 19:55:51 2006
+++ odbsequoia/src/descriptors_records.hpp      Wed Mar  8 20:05:00 2006
@@ -75,7 +75,7 @@
     SQLRETURN
     bind_col(SQLSMALLINT TargetType, SQLPOINTER TargetValuePtr,
              SQLINTEGER BufferLength, SQLLEN * StrLen_or_Ind);
-    void
+    SQLRETURN
     fetch_col(CarobNS::DriverResultSet& rs, int rs_col);
 
 public: // public to avoid cluttering the code with getters/setters

_______________________________________________
Carob-commits mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/carob-commits

Reply via email to