Author: wyoung
Date: Tue Mar 24 19:14:21 2009
New Revision: 2494

URL: http://svn.gna.org/viewcvs/mysqlpp?rev=2494&view=rev
Log:
- Defined *_null variants for every sql_* typedef, wrapping all those
  earlier types in Null<>.  
- Changed the examples to use these types instead of Null<>.  They're
  shorter and more closely match the corresponding SQL code.

Modified:
    trunk/examples/fieldinf.cpp
    trunk/examples/printdata.cpp
    trunk/examples/printdata.h
    trunk/examples/stock.h
    trunk/lib/sql_types.h

Modified: trunk/examples/fieldinf.cpp
URL: 
http://svn.gna.org/viewcvs/mysqlpp/trunk/examples/fieldinf.cpp?rev=2494&r1=2493&r2=2494&view=diff
==============================================================================
--- trunk/examples/fieldinf.cpp (original)
+++ trunk/examples/fieldinf.cpp Tue Mar 24 19:14:21 2009
@@ -90,7 +90,7 @@
                if (res.field_type(5) == typeid(string)) {
                        cout << "Should not happen! Type check failure." << 
endl;
                }
-               else if (res.field_type(5) == 
typeid(mysqlpp::Null<mysqlpp::String>)) {
+               else if (res.field_type(5) == typeid(mysqlpp::sql_blob_null)) {
                        cout << "SQL type of 'description' field resembles "
                                        "a nullable variant of the C++ string 
type." << endl;
                }

Modified: trunk/examples/printdata.cpp
URL: 
http://svn.gna.org/viewcvs/mysqlpp/trunk/examples/printdata.cpp?rev=2494&r1=2493&r2=2494&view=diff
==============================================================================
--- trunk/examples/printdata.cpp (original)
+++ trunk/examples/printdata.cpp Tue Mar 24 19:14:21 2009
@@ -55,8 +55,7 @@
 
 void
 print_stock_row(const mysqlpp::sql_char& item, mysqlpp::sql_bigint num,
-               mysqlpp::sql_double weight,
-               mysqlpp::Null<mysqlpp::sql_decimal> price,
+               mysqlpp::sql_double weight, mysqlpp::sql_decimal_null price,
                const mysqlpp::sql_date& date)
 {
        cout << setw(30) << item << ' ' <<

Modified: trunk/examples/printdata.h
URL: 
http://svn.gna.org/viewcvs/mysqlpp/trunk/examples/printdata.h?rev=2494&r1=2493&r2=2494&view=diff
==============================================================================
--- trunk/examples/printdata.h (original)
+++ trunk/examples/printdata.h Tue Mar 24 19:14:21 2009
@@ -34,8 +34,7 @@
 void print_stock_row(const mysqlpp::Row& r);
 void print_stock_row(const mysqlpp::sql_char& item,
                mysqlpp::sql_bigint num, mysqlpp::sql_double weight,
-               mysqlpp::Null<mysqlpp::sql_decimal> price,
-               const mysqlpp::sql_date& date);
+               mysqlpp::sql_decimal_null price, const mysqlpp::sql_date& date);
 void print_stock_rows(mysqlpp::StoreQueryResult& res);
 void print_stock_table(mysqlpp::Query& query);
 

Modified: trunk/examples/stock.h
URL: 
http://svn.gna.org/viewcvs/mysqlpp/trunk/examples/stock.h?rev=2494&r1=2493&r2=2494&view=diff
==============================================================================
--- trunk/examples/stock.h (original)
+++ trunk/examples/stock.h Tue Mar 24 19:14:21 2009
@@ -32,7 +32,7 @@
 //
 //   sql_char item;
 //   ...
-//   Null<sql_mediumtext> description;
+//   sql_mediumtext_null description;
 //
 // plus methods to help populate the class from a MySQL row.  See the
 // SSQLS sections in the user manual for further details.
@@ -41,7 +41,7 @@
        mysqlpp::sql_char, item,
        mysqlpp::sql_bigint, num,
        mysqlpp::sql_double, weight,
-       mysqlpp::Null<mysqlpp::sql_double>, price,
+       mysqlpp::sql_double_null, price,
        mysqlpp::sql_date, sdate,
-       mysqlpp::Null<mysqlpp::sql_mediumtext>, description)
+       mysqlpp::sql_mediumtext_null, description)
 

Modified: trunk/lib/sql_types.h
URL: 
http://svn.gna.org/viewcvs/mysqlpp/trunk/lib/sql_types.h?rev=2494&r1=2493&r2=2494&view=diff
==============================================================================
--- trunk/lib/sql_types.h (original)
+++ trunk/lib/sql_types.h Tue Mar 24 19:14:21 2009
@@ -6,7 +6,7 @@
 /// \c Null<T> template.  See null.h for more information.
 
 /***********************************************************************
- Copyright (c) 2006-2008 by Educational Technology Resources, Inc.
+ Copyright (c) 2006-2009 by Educational Technology Resources, Inc.
  Others may also hold copyrights on code in this file.  See the
  CREDITS.txt file in the top directory of the distribution for details.
 
@@ -152,3 +152,62 @@
        } // end namespace mysqlpp
 #endif
 
+#if defined(MYSQLPP_NULL_H) && !defined(MYSQLPP_SQL_TYPES_H_NULL) && 
!defined(DOXYGEN_IGNORE)
+#      define MYSQLPP_SQL_TYPES_H_NULL
+       // We have null.h, so define nullable versions of all the above
+       namespace mysqlpp {
+               typedef Null<sql_bigint> sql_bigint_null;
+               typedef Null<sql_bigint_unsigned> sql_bigint_unsigned_null;
+               typedef Null<sql_bool> sql_bool_null;
+               typedef Null<sql_boolean> sql_boolean_null;
+               typedef Null<sql_char> sql_char_null;
+               typedef Null<sql_character_varying> sql_character_varying_null;
+               typedef Null<sql_decimal> sql_decimal_null;
+               typedef Null<sql_double> sql_double_null;
+               typedef Null<sql_enum> sql_enum_null;
+               typedef Null<sql_fixed> sql_fixed_null;
+               typedef Null<sql_float> sql_float_null;
+               typedef Null<sql_float4> sql_float4_null;
+               typedef Null<sql_float8> sql_float8_null;
+               typedef Null<sql_int> sql_int_null;
+               typedef Null<sql_int1> sql_int1_null;
+               typedef Null<sql_int2> sql_int2_null;
+               typedef Null<sql_int3> sql_int3_null;
+               typedef Null<sql_int4> sql_int4_null;
+               typedef Null<sql_int8> sql_int8_null;
+               typedef Null<sql_int_unsigned> sql_int_unsigned_null;
+               typedef Null<sql_long> sql_long_null;
+               typedef Null<sql_longtext> sql_longtext_null;
+               typedef Null<sql_long_varchar> sql_long_varchar_null;
+               typedef Null<sql_mediumint> sql_mediumint_null;
+               typedef Null<sql_mediumint_unsigned> 
sql_mediumint_unsigned_null;
+               typedef Null<sql_mediumtext> sql_mediumtext_null;
+               typedef Null<sql_middleint> sql_middleint_null;
+               typedef Null<sql_numeric> sql_numeric_null;
+               typedef Null<sql_smallint> sql_smallint_null;
+               typedef Null<sql_smallint_unsigned> sql_smallint_unsigned_null;
+               typedef Null<sql_text> sql_text_null;
+               typedef Null<sql_tinyint> sql_tinyint_null;
+               typedef Null<sql_tinyint_unsigned> sql_tinyint_unsigned_null;
+               typedef Null<sql_tinytext> sql_tinytext_null;
+               typedef Null<sql_varchar> sql_varchar_null;
+
+               // Also do nullable versions of optional sql_* types, where 
possible
+#              if defined(MYSQLPP_SQL_TYPES_H_MYSTRING)
+                       typedef Null<sql_blob> sql_blob_null;
+                       typedef Null<sql_longblob> sql_longblob_null;
+                       typedef Null<sql_mediumblob> sql_mediumblob_null;
+                       typedef Null<sql_tinyblob> sql_tinyblob_null;
+                       typedef Null<sql_long_varbinary> 
sql_long_varbinary_null;
+#              endif
+#              if defined(MYSQLPP_SQL_TYPES_H_DATETIME)
+                       typedef Null<sql_date> sql_date_null;
+                       typedef Null<sql_datetime> sql_datetime_null;
+                       typedef Null<sql_time> sql_time_null;
+                       typedef Null<sql_timestamp> sql_timestamp_null;
+#              endif
+#              if defined(MYSQLPP_SQL_TYPES_H_SET)
+                       typedef Null<sql_set> sql_set_null;
+#              endif
+       } // end namespace mysqlpp
+#endif


_______________________________________________
Mysqlpp-commits mailing list
[email protected]
https://mail.gna.org/listinfo/mysqlpp-commits

Reply via email to