Date: Wednesday, January 18, 2006 @ 12:30:03
Author: csaba
Path: /cvsroot/carob/libmysequoia
Modified: include/Utils.hpp (1.15 -> 1.16) src/Utils.cpp (1.20 -> 1.21)
test/TestMySQLAPI.cpp (1.22 -> 1.23)
Added MYSQL_TIME_to_str() function.
-----------------------+
include/Utils.hpp | 5 +++++
src/Utils.cpp | 35 +++++++++++++++++++++++++++++++++++
test/TestMySQLAPI.cpp | 8 +++-----
3 files changed, 43 insertions(+), 5 deletions(-)
Index: libmysequoia/include/Utils.hpp
diff -u libmysequoia/include/Utils.hpp:1.15 libmysequoia/include/Utils.hpp:1.16
--- libmysequoia/include/Utils.hpp:1.15 Fri Jan 13 10:01:08 2006
+++ libmysequoia/include/Utils.hpp Wed Jan 18 12:30:02 2006
@@ -123,4 +123,9 @@
void getFromDate(MYSQL_BIND *bind, MYSQL_FIELD *field, void *data);
void getFromDateTime(MYSQL_BIND *bind, MYSQL_FIELD *field, void *data);
+/**
+ * Convert a MYSQL_TIME structure to a character string
+ */
+bool MYSQL_TIME_to_str(MYSQL_TIME *t, char *s, int maxlen);
+
#endif /* _UTILS_HPP */
Index: libmysequoia/src/Utils.cpp
diff -u libmysequoia/src/Utils.cpp:1.20 libmysequoia/src/Utils.cpp:1.21
--- libmysequoia/src/Utils.cpp:1.20 Tue Jan 17 14:51:14 2006
+++ libmysequoia/src/Utils.cpp Wed Jan 18 12:30:02 2006
@@ -983,3 +983,38 @@
}
*/
+
+bool MYSQL_TIME_to_str(MYSQL_TIME *t, char *s, int maxlen)
+{
+ bool result = true;
+ int len;
+
+ switch (t->time_type)
+ {
+ case MYSQL_TIMESTAMP_NONE:
+ case MYSQL_TIMESTAMP_ERROR:
+ *s = '\0';
+ break;
+
+ case MYSQL_TIMESTAMP_DATE:
+ len = snprintf(s, maxlen, "%04d-%02d-%02d", t->year, t->month, t->day);
+ result = (len < 0) || (len >= maxlen);
+ break;
+
+ case MYSQL_TIMESTAMP_DATETIME:
+ len = snprintf(s, maxlen, "%04d-%02d-%02d %02d:%02d:%02d", t->year,
t->month, t->day,
+ t->hour, t->minute, t->second);
+ result = (len < 0) || (len >= maxlen);
+ break;
+
+ case MYSQL_TIMESTAMP_TIME:
+ len = snprintf(s, maxlen, "%s%02d:%02d:%02d", t->neg ? "-" : "",
t->hour, t->minute, t->second);
+ result = (len < 0) || (len >= maxlen);
+ break;
+
+ default:
+ result = false;
+ }
+
+ return result;
+}
Index: libmysequoia/test/TestMySQLAPI.cpp
diff -u libmysequoia/test/TestMySQLAPI.cpp:1.22
libmysequoia/test/TestMySQLAPI.cpp:1.23
--- libmysequoia/test/TestMySQLAPI.cpp:1.22 Wed Jan 18 10:29:57 2006
+++ libmysequoia/test/TestMySQLAPI.cpp Wed Jan 18 12:30:02 2006
@@ -197,11 +197,9 @@
void TestMySQLAPI::mysql_real_query_1_test(void)
{
-// char *query = "create table t1 (a int(11) not null auto_increment, b
int(11) default null,"
-// " c varchar(200) default null, d date default null, e time
default null, "
-// "datetime default null, primary key (a))";
char *query = "create table t1 (a int(11) not null auto_increment, b int(11)
default null,"
- " c varchar(200) default null, d date default null, primary
key (a))";
+ " c varchar(200) default null, d date default null, e time
default null,"
+ " f datetime default null, primary key (a))";
// connect to the database
CPPUNIT_ASSERT(mysql_real_connect(mysql, HOST, USER1, PASSWD1, DB1, 0, 0, 0)
!= 0);
@@ -351,7 +349,7 @@
CPPUNIT_ASSERT(mysql_stmt_prepare(stmt, query, strlen(query)) == 0);
CPPUNIT_ASSERT(mysql_stmt_param_count(stmt) == 2);
- memset(bind, 0, sizeof(MYSQL_BIND));
+ memset(bind, 0, sizeof(bind));
bind[0].buffer_type = MYSQL_TYPE_LONG;
bind[0].buffer = (char *)&int_data;
_______________________________________________
Carob-commits mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/carob-commits