From 18b63072e8a239a3132b798c703b8ca871bb498b Mon Sep 17 00:00:00 2001 From: holman Date: Thu, 5 Oct 2006 03:45:26 +0000 Subject: [PATCH] ticket:1834 fixed - libodbc++ lacks amd64 support --- .../libodbc++-0.2.3-20050404/bin/prepare.sh | 2 + .../etc/libodbc++-x64-fix.patch | 96 +++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 livesupport/src/tools/libodbc++/libodbc++-0.2.3-20050404/etc/libodbc++-x64-fix.patch diff --git a/livesupport/src/tools/libodbc++/libodbc++-0.2.3-20050404/bin/prepare.sh b/livesupport/src/tools/libodbc++/libodbc++-0.2.3-20050404/bin/prepare.sh index 4bd1976da..f078760c2 100755 --- a/livesupport/src/tools/libodbc++/libodbc++-0.2.3-20050404/bin/prepare.sh +++ b/livesupport/src/tools/libodbc++/libodbc++-0.2.3-20050404/bin/prepare.sh @@ -56,5 +56,7 @@ if [ ! -d $product ]; then patch -p1 < $etcdir/libodbc++-dont-install-some-docs.patch # patch to fix bug #1545 (not submitted; already fixed in 0.2.4) patch -p1 < $etcdir/libodbc++-gcc-4.0-fix.patch + # patch not submitted yet + patch -p1 < $etcdir/libodbc++-x64-fix.patch fi diff --git a/livesupport/src/tools/libodbc++/libodbc++-0.2.3-20050404/etc/libodbc++-x64-fix.patch b/livesupport/src/tools/libodbc++/libodbc++-0.2.3-20050404/etc/libodbc++-x64-fix.patch new file mode 100644 index 000000000..1b3c742b7 --- /dev/null +++ b/livesupport/src/tools/libodbc++/libodbc++-0.2.3-20050404/etc/libodbc++-x64-fix.patch @@ -0,0 +1,96 @@ +--- /home/holman/devel/campware/livesupport/trunk/livesupport/src/tools/libodbc++/libodbc++-0.2.3-20050404/tmp/libodbc++-0.2.3-20050404/src/preparedstatement.cpp 2001-06-12 05:38:32.000000000 -0500 ++++ src/tools/libodbc++/libodbc++-0.2.3-20050404/tmp/libodbc++-0.2.3-20050404/src/preparedstatement.cpp 2006-10-04 11:06:36.000000000 -0500 +@@ -161,7 +161,7 @@ + numParams_=np; + + SQLSMALLINT sqlType; +- SQLUINTEGER prec; ++ SQLULEN prec; + SQLSMALLINT scale; + SQLSMALLINT nullable; + +@@ -303,7 +303,7 @@ + r=SQLParamData(hstmt_,¤tCol); + this->_checkStmtError(hstmt_,r,"SQLParamData failure"); + if(r==SQL_NEED_DATA) { +- DataHandler* dh=rowset_->getColumn((int)currentCol); ++ DataHandler* dh=rowset_->getColumn((long)currentCol); + + assert(dh->isStreamed_); + +--- /home/holman/devel/campware/livesupport/trunk/livesupport/src/tools/libodbc++/libodbc++-0.2.3-20050404/tmp/libodbc++-0.2.3-20050404/src/resultset.cpp 2003-06-17 05:10:32.000000000 -0500 ++++ src/tools/libodbc++/libodbc++-0.2.3-20050404/tmp/libodbc++-0.2.3-20050404/src/resultset.cpp 2006-10-04 18:08:03.000000000 -0500 +@@ -528,7 +528,7 @@ + r=SQLParamData(hstmt_,¤tCol); + this->_checkStmtError(hstmt_,r,"SQLParamData failure"); + if(r==SQL_NEED_DATA) { +- DataHandler* dh=rowset_->getColumn((int)currentCol); ++ DataHandler* dh=rowset_->getColumn((long)currentCol); + + assert(dh->isStreamed_); + +@@ -1356,8 +1356,9 @@ + DataHandler* dh=rowset_->getColumn(idx); + ODBCXX_STREAM* s=dh->getStream(); + if(s==NULL) { +- s=new DataStream(this,hstmt_,idx,SQL_C_BINARY, +- dh->dataStatus_[dh->currentRow_]); ++ SQLINTEGER Status=dh->dataStatus_[dh->currentRow_]; ++ s=new DataStream(this,hstmt_,idx,SQL_C_BINARY,Status); ++ dh->dataStatus_[dh->currentRow_]=Status; + dh->setStream(s); + } + lastWasNull_=dh->isNull(); +--- /home/holman/devel/campware/livesupport/trunk/livesupport/src/tools/libodbc++/libodbc++-0.2.3-20050404/tmp/libodbc++-0.2.3-20050404/src/resultsetmetadata.cpp 2001-06-12 05:38:35.000000000 -0500 ++++ src/tools/libodbc++/libodbc++-0.2.3-20050404/tmp/libodbc++-0.2.3-20050404/src/resultsetmetadata.cpp 2006-10-04 12:05:45.000000000 -0500 +@@ -39,7 +39,7 @@ + int ResultSetMetaData::_getNumericAttribute(unsigned int col, + SQLUSMALLINT attr) + { +- SQLINTEGER res=0; ++ SQLLEN res=0; + SQLRETURN r= + ODBC3_C(SQLColAttribute,SQLColAttributes)(resultSet_->hstmt_, + (SQLUSMALLINT)col, +@@ -63,7 +63,7 @@ + odbc::Deleter _buf(buf,true); + buf[maxlen]=0; + +- SQLINTEGER res=0; ++ SQLLEN res=0; + SQLSMALLINT len=0; + + SQLRETURN r= +--- /home/holman/devel/campware/livesupport/trunk/livesupport/src/tools/libodbc++/libodbc++-0.2.3-20050404/tmp/libodbc++-0.2.3-20050404/src/statement.cpp 2003-03-28 08:26:02.000000000 -0500 ++++ src/tools/libodbc++/libodbc++-0.2.3-20050404/tmp/libodbc++-0.2.3-20050404/src/statement.cpp 2006-10-04 12:06:54.000000000 -0500 +@@ -672,7 +672,7 @@ + + if(lastExecute_!=ODBC3_C(SQL_NO_DATA,SQL_NO_DATA_FOUND)) { + +- SQLINTEGER res; ++ SQLLEN res; + SQLRETURN r=SQLRowCount(hstmt_,&res); + this->_checkStmtError(hstmt_,r,"Error fetching update count"); + return res; +--- /home/holman/devel/campware/livesupport/trunk/livesupport/src/tools/libodbc++/libodbc++-0.2.3-20050404/tmp/libodbc++-0.2.3-20050404/src/datahandler.cpp 2006-10-04 17:37:32.000000000 -0500 ++++ src/tools/libodbc++/libodbc++-0.2.3-20050404/tmp/libodbc++-0.2.3-20050404/src/datahandler.cpp 2006-10-04 12:07:52.000000000 -0500 +@@ -269,7 +269,7 @@ + }; + this->setupBuffer(bs); + +- dataStatus_=new SQLINTEGER[rows_]; ++ dataStatus_=new SQLLEN[rows_]; + + //set everything to NULL + for(unsigned int i=0; i