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