You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by pe...@apache.org on 2026/07/27 06:50:28 UTC
(openoffice) 08/20: Fix Win64 compatibility issues with the ADO database driver.
This is an automated email from the ASF dual-hosted git repository.
leginee pushed a commit to branch bazel-migration
in repository https://gitbox.apache.org/repos/asf/openoffice.git
commit b0e683d3c0c33e27b95c555887ac162f73d5f4be
Author: Damjan Jovanovic <da...@apache.org>
AuthorDate: Sat Jan 4 14:47:50 2025 +0200
Fix Win64 compatibility issues with the ADO database driver.
Patch by: me
(cherry picked from commit 24cfd890cd12252bfd1776fd49975d832b495337)
(cherry picked from commit 57d069c68978b8d1cc511e0a006754ad5f012b2f)
---
.../source/drivers/ado/APreparedStatement.cxx | 6 ++++--
main/connectivity/source/drivers/ado/AResultSet.cxx | 6 ++++--
main/connectivity/source/drivers/ado/AStatement.cxx | 12 +++++++-----
main/connectivity/source/drivers/ado/Awrapado.cxx | 20 ++++++++++----------
main/connectivity/source/inc/ado/Awrapado.hxx | 14 +++++++-------
5 files changed, 32 insertions(+), 26 deletions(-)
diff --git a/main/connectivity/source/drivers/ado/APreparedStatement.cxx b/main/connectivity/source/drivers/ado/APreparedStatement.cxx
index 00dde5cb41..9dba43356a 100644
--- a/main/connectivity/source/drivers/ado/APreparedStatement.cxx
+++ b/main/connectivity/source/drivers/ado/APreparedStatement.cxx
@@ -306,10 +306,12 @@ m_xMetaData.clear();
OLEVariant aCon;
aCon.setNoArg();
CHECK_RETURN(m_RecordSet.put_CacheSize(m_nFetchSize))
- CHECK_RETURN(m_RecordSet.put_MaxRecords(m_nMaxRows))
+ sal_IntPtr maxRows = m_nMaxRows;
+ CHECK_RETURN(m_RecordSet.put_MaxRecords(maxRows))
CHECK_RETURN(m_RecordSet.Open(aCmd,aCon,m_eCursorType,m_eLockType,adOpenUnspecified))
CHECK_RETURN(m_RecordSet.get_CacheSize(m_nFetchSize))
- CHECK_RETURN(m_RecordSet.get_MaxRecords(m_nMaxRows))
+ CHECK_RETURN(m_RecordSet.get_MaxRecords(maxRows))
+ m_nMaxRows = maxRows;
CHECK_RETURN(m_RecordSet.get_CursorType(m_eCursorType))
CHECK_RETURN(m_RecordSet.get_LockType(m_eLockType))
diff --git a/main/connectivity/source/drivers/ado/AResultSet.cxx b/main/connectivity/source/drivers/ado/AResultSet.cxx
index fdc62b6f16..4dc25e995f 100644
--- a/main/connectivity/source/drivers/ado/AResultSet.cxx
+++ b/main/connectivity/source/drivers/ado/AResultSet.cxx
@@ -274,7 +274,7 @@ sal_Int32 SAL_CALL OResultSet::getRow( ) throw(SQLException, RuntimeException)
checkDisposed(OResultSet_BASE::rBHelper.bDisposed);
- PositionEnum aPos;
+ sal_IntPtr aPos;
m_pRecordSet->get_AbsolutePosition(&aPos);
return (aPos > 0) ? aPos : m_nRowPos;
// return the rowcount from driver if the driver doesn't support this return our count
@@ -447,7 +447,9 @@ sal_Bool SAL_CALL OResultSet::last( ) throw(SQLException, RuntimeException)
sal_Bool bRet = SUCCEEDED(m_pRecordSet->MoveLast());
if(bRet)
{
- m_pRecordSet->get_RecordCount(&m_nRowPos);
+ sal_IntPtr rowPos;
+ m_pRecordSet->get_RecordCount(&rowPos);
+ m_nRowPos = rowPos;
m_bOnFirstAfterOpen = sal_False;
}
return bRet;
diff --git a/main/connectivity/source/drivers/ado/AStatement.cxx b/main/connectivity/source/drivers/ado/AStatement.cxx
index b36c9a8d47..57526fc78b 100644
--- a/main/connectivity/source/drivers/ado/AStatement.cxx
+++ b/main/connectivity/source/drivers/ado/AStatement.cxx
@@ -304,12 +304,14 @@ Reference< XResultSet > SAL_CALL OStatement_Base::executeQuery( const ::rtl::OUS
OLEVariant aCon;
aCon.setNoArg();
CHECK_RETURN(aSet.put_CacheSize(m_nFetchSize))
- CHECK_RETURN(aSet.put_MaxRecords(m_nMaxRows))
+ sal_IntPtr maxRows = m_nMaxRows;
+ CHECK_RETURN(aSet.put_MaxRecords(maxRows))
CHECK_RETURN(aSet.Open(aCmd,aCon,m_eCursorType,m_eLockType,adOpenUnspecified))
CHECK_RETURN(aSet.get_CacheSize(m_nFetchSize))
- CHECK_RETURN(aSet.get_MaxRecords(m_nMaxRows))
+ CHECK_RETURN(aSet.get_MaxRecords(maxRows))
+ m_nMaxRows = maxRows;
CHECK_RETURN(aSet.get_CursorType(m_eCursorType))
CHECK_RETURN(aSet.get_LockType(m_eLockType))
@@ -385,7 +387,7 @@ Sequence< sal_Int32 > SAL_CALL OStatement::executeBatch( ) throw(SQLException,
{
assignRecordSet( pSet );
- sal_Int32 nValue;
+ sal_IntPtr nValue;
if(m_RecordSet.get_RecordCount(nValue))
pArray[j] = nValue;
}
@@ -438,7 +440,7 @@ sal_Int32 SAL_CALL OStatement_Base::getUpdateCount( ) throw(SQLException, Runti
checkDisposed(OStatement_BASE::rBHelper.bDisposed);
- sal_Int32 nRet;
+ sal_IntPtr nRet;
if(m_RecordSet.IsValid() && m_RecordSet.get_RecordCount(nRet))
return nRet;
return -1;
@@ -507,7 +509,7 @@ sal_Int32 OStatement_Base::getQueryTimeOut() const throw(SQLException, RuntimeE
//------------------------------------------------------------------------------
sal_Int32 OStatement_Base::getMaxRows() const throw(SQLException, RuntimeException)
{
- sal_Int32 nRet=-1;
+ sal_IntPtr nRet=-1;
if(!(m_RecordSet.IsValid() && m_RecordSet.get_MaxRecords(nRet)))
::dbtools::throwFunctionSequenceException(NULL);
return nRet;
diff --git a/main/connectivity/source/drivers/ado/Awrapado.cxx b/main/connectivity/source/drivers/ado/Awrapado.cxx
index 6cd32d6f10..1a0f66fa07 100644
--- a/main/connectivity/source/drivers/ado/Awrapado.cxx
+++ b/main/connectivity/source/drivers/ado/Awrapado.cxx
@@ -476,10 +476,10 @@ WpADOProperties WpADOField::get_Properties()
return aProps;
}
- sal_Int32 WpADOField::GetActualSize() const
+sal_IntPtr WpADOField::GetActualSize() const
{
OSL_ENSURE(pInterface,"Interface is null!");
- sal_Int32 nActualSize=0;
+ ADO_LONGPTR nActualSize=0;
pInterface->get_ActualSize(&nActualSize);
return nActualSize;
}
@@ -500,10 +500,10 @@ sal_Int32 WpADOField::GetStatus() const
return eADOSFieldAttributes;
}
-sal_Int32 WpADOField::GetDefinedSize() const
+sal_IntPtr WpADOField::GetDefinedSize() const
{
OSL_ENSURE(pInterface,"Interface is null!");
- sal_Int32 nDefinedSize=0;
+ ADO_LONGPTR nDefinedSize=0;
pInterface->get_DefinedSize(&nDefinedSize);
return nDefinedSize;
}
@@ -629,7 +629,7 @@ OLEVariant WpADOField::GetUnderlyingValue() const
pInterface->put_Type(eType);
}
- sal_Bool WpADOField::PutDefinedSize(sal_Int32 _nDefSize)
+ sal_Bool WpADOField::PutDefinedSize(sal_IntPtr _nDefSize)
{
OSL_ENSURE(pInterface,"Interface is null!");
return (SUCCEEDED(pInterface->put_DefinedSize(_nDefSize)));
@@ -770,10 +770,10 @@ void WpADORecordset::Close()
return bSupports == VARIANT_TRUE;
}
-PositionEnum WpADORecordset::get_AbsolutePosition()
+ sal_IntPtr WpADORecordset::get_AbsolutePosition()
{
OSL_ENSURE(pInterface,"Interface is null!");
- PositionEnum aTemp=adPosUnknown;
+ sal_IntPtr aTemp=adPosUnknown;
pInterface->get_AbsolutePosition(&aTemp);
return aTemp;
}
@@ -892,19 +892,19 @@ WpADOProperties WpADORecordset::get_Properties() const
return SUCCEEDED(pInterface->NextRecordset(&RecordsAffected,ppiRset));
}
- sal_Bool WpADORecordset::get_RecordCount(sal_Int32 &_nRet) const
+ sal_Bool WpADORecordset::get_RecordCount(sal_IntPtr &_nRet) const
{
OSL_ENSURE(pInterface,"Interface is null!");
return SUCCEEDED(pInterface->get_RecordCount(&_nRet));
}
- sal_Bool WpADORecordset::get_MaxRecords(sal_Int32 &_nRet) const
+ sal_Bool WpADORecordset::get_MaxRecords(sal_IntPtr &_nRet) const
{
OSL_ENSURE(pInterface,"Interface is null!");
return SUCCEEDED(pInterface->get_MaxRecords(&_nRet));
}
- sal_Bool WpADORecordset::put_MaxRecords(sal_Int32 _nRet)
+ sal_Bool WpADORecordset::put_MaxRecords(sal_IntPtr _nRet)
{
OSL_ENSURE(pInterface,"Interface is null!");
return SUCCEEDED(pInterface->put_MaxRecords(_nRet));
diff --git a/main/connectivity/source/inc/ado/Awrapado.hxx b/main/connectivity/source/inc/ado/Awrapado.hxx
index 4cccf3a0c4..e5ae8eb4a1 100644
--- a/main/connectivity/source/inc/ado/Awrapado.hxx
+++ b/main/connectivity/source/inc/ado/Awrapado.hxx
@@ -244,10 +244,10 @@ namespace connectivity
//////////////////////////////////////////////////////////////////////
WpADOProperties get_Properties();
- sal_Int32 GetActualSize() const ;
+ sal_IntPtr GetActualSize() const ;
sal_Int32 GetAttributes() const ;
sal_Int32 GetStatus() const ;
- sal_Int32 GetDefinedSize() const ;
+ sal_IntPtr GetDefinedSize() const ;
// gibt den Namen des Feldes zur"ueck
::rtl::OUString GetName() const ;
DataTypeEnum GetADOType() const ;
@@ -271,7 +271,7 @@ namespace connectivity
void PutADOType(DataTypeEnum eType) ;
- sal_Bool PutDefinedSize(sal_Int32 _nDefSize);
+ sal_Bool PutDefinedSize(sal_IntPtr _nDefSize);
sal_Bool PutAttributes(sal_Int32 _nDefSize);
};
@@ -331,7 +331,7 @@ namespace connectivity
sal_Bool Cancel() const;
sal_Int32 get_State( );
sal_Bool Supports( /* [in] */ CursorOptionEnum CursorOptions);
- PositionEnum get_AbsolutePosition();
+ sal_IntPtr get_AbsolutePosition();
void GetDataSource(IUnknown** pIUnknown) const ;
void PutRefDataSource(IUnknown* pIUnknown);
void GetBookmark(VARIANT& var);
@@ -353,9 +353,9 @@ namespace connectivity
sal_Bool CancelUpdate();
WpADOProperties get_Properties() const;
sal_Bool NextRecordset(OLEVariant& RecordsAffected,ADORecordset** ppiRset);
- sal_Bool get_RecordCount(sal_Int32 &_nRet) const;
- sal_Bool get_MaxRecords(sal_Int32 &_nRet) const;
- sal_Bool put_MaxRecords(sal_Int32 _nRet);
+ sal_Bool get_RecordCount(sal_IntPtr &_nRet) const;
+ sal_Bool get_MaxRecords(sal_IntPtr &_nRet) const;
+ sal_Bool put_MaxRecords(sal_IntPtr _nRet);
sal_Bool get_CursorType(CursorTypeEnum &_nRet) const;
sal_Bool put_CursorType(CursorTypeEnum _nRet);
sal_Bool get_LockType(LockTypeEnum &_nRet) const;