From dd0872eb9cb1068da7f148865a2eab49955762a5 Mon Sep 17 00:00:00 2001 From: Olivier Bertrand Date: Sun, 25 Aug 2013 11:12:54 +0200 Subject: - Handle TINY in ODBC type conversion modified: storage/connect/odbconn.cpp - Enhance TYPBLK::GetMaxLength modified: storage/connect/valblk.cpp --- storage/connect/odbconn.cpp | 8 ++++++-- storage/connect/valblk.cpp | 9 ++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/storage/connect/odbconn.cpp b/storage/connect/odbconn.cpp index 6129c93d388..397b7c2a2f4 100644 --- a/storage/connect/odbconn.cpp +++ b/storage/connect/odbconn.cpp @@ -76,8 +76,9 @@ static short GetSQLType(int type) case TYPE_SHORT: tp = SQL_SMALLINT; break; case TYPE_INT: tp = SQL_INTEGER; break; case TYPE_DATE: tp = SQL_TIMESTAMP; break; - case TYPE_BIGINT: tp = SQL_BIGINT; break; // (-5) + case TYPE_BIGINT: tp = SQL_BIGINT; break; // (-5) case TYPE_FLOAT: tp = SQL_DOUBLE; break; + case TYPE_TINY : tp = SQL_TINYINT; break; } // endswitch type return tp; @@ -97,6 +98,7 @@ static int GetSQLCType(int type) case TYPE_DATE: tp = SQL_C_TIMESTAMP; break; case TYPE_BIGINT: tp = SQL_C_SBIGINT; break; case TYPE_FLOAT: tp = SQL_C_DOUBLE; break; + case TYPE_TINY : tp = SQL_C_TINYINT; break; } // endswitch type return tp; @@ -127,9 +129,11 @@ int TranslateSQLType(int stp, int prec, int& len) type = TYPE_INT; break; case SQL_SMALLINT: // 5 + type = TYPE_SHORT; + break; case SQL_TINYINT: // (-6) case SQL_BIT: // (-7) - type = TYPE_SHORT; + type = TYPE_TINY; break; case SQL_FLOAT: // 6 case SQL_REAL: // 7 diff --git a/storage/connect/valblk.cpp b/storage/connect/valblk.cpp index 55f9da7571b..06c7776d2f5 100644 --- a/storage/connect/valblk.cpp +++ b/storage/connect/valblk.cpp @@ -447,13 +447,12 @@ int TYPBLK::Find(PVAL vp) template int TYPBLK::GetMaxLength(void) { - char buf[12]; - int i, n; + char buf[32]; + int i, n, m; for (i = n = 0; i < Nval; i++) { - sprintf(buf, Fmt, Typp[i]); - - n = max(n, (signed)strlen(buf)); + m = sprintf(buf, Fmt, Typp[i]); + n = max(n, m); } // endfor i return n; -- cgit v1.2.1