dba34d: #i116509# check if first and previous work
This commit is contained in:
@@ -400,7 +400,7 @@ void SAL_CALL OResultSet::beforeFirst( ) throw(SQLException, RuntimeException)
|
||||
|
||||
|
||||
if(first())
|
||||
previous();
|
||||
m_bOnFirstAfterOpen = !previous();
|
||||
}
|
||||
// -------------------------------------------------------------------------
|
||||
void SAL_CALL OResultSet::afterLast( ) throw(SQLException, RuntimeException)
|
||||
|
@@ -242,7 +242,7 @@ void ODbaseTable::AllocBuffer()
|
||||
}
|
||||
|
||||
// Falls noch kein Puffer vorhanden: allozieren:
|
||||
if (m_pBuffer == NULL && nSize)
|
||||
if (m_pBuffer == NULL && nSize > 0)
|
||||
{
|
||||
m_nBufferSize = nSize;
|
||||
m_pBuffer = new sal_uInt8[m_nBufferSize+1];
|
||||
@@ -504,11 +504,14 @@ SvStream& connectivity::dbase::operator << (SvStream &rStream, const ONDXPage& r
|
||||
sal_uIntPtr nTell = rStream.Tell() % 512;
|
||||
sal_uInt16 nBufferSize = rStream.GetBufferSize();
|
||||
sal_uIntPtr nSize = nBufferSize - nTell;
|
||||
char* pEmptyData = new char[nSize];
|
||||
memset(pEmptyData,0x00,nSize);
|
||||
rStream.Write((sal_uInt8*)pEmptyData,nSize);
|
||||
rStream.Seek(nTell);
|
||||
delete [] pEmptyData;
|
||||
if ( nSize <= nBufferSize )
|
||||
{
|
||||
char* pEmptyData = new char[nSize];
|
||||
memset(pEmptyData,0x00,nSize);
|
||||
rStream.Write((sal_uInt8*)pEmptyData,nSize);
|
||||
rStream.Seek(nTell);
|
||||
delete [] pEmptyData;
|
||||
}
|
||||
}
|
||||
return rStream;
|
||||
}
|
||||
|
@@ -2822,7 +2822,7 @@ void ODbaseTable::AllocBuffer()
|
||||
}
|
||||
|
||||
// Falls noch kein Puffer vorhanden: allozieren:
|
||||
if (m_pBuffer == NULL && nSize)
|
||||
if (m_pBuffer == NULL && nSize > 0)
|
||||
{
|
||||
m_nBufferSize = nSize;
|
||||
m_pBuffer = new sal_uInt8[m_nBufferSize+1];
|
||||
|
@@ -926,11 +926,14 @@ SvStream& connectivity::dbase::operator << (SvStream &rStream, const ONDXPage& r
|
||||
sal_uIntPtr nTell = rStream.Tell() % PAGE_SIZE;
|
||||
sal_uInt16 nBufferSize = rStream.GetBufferSize();
|
||||
sal_uIntPtr nRemainSize = nBufferSize - nTell;
|
||||
char* pEmptyData = new char[nRemainSize];
|
||||
memset(pEmptyData,0x00,nRemainSize);
|
||||
rStream.Write((sal_uInt8*)pEmptyData,nRemainSize);
|
||||
rStream.Seek(nTell);
|
||||
delete [] pEmptyData;
|
||||
if ( nRemainSize <= nBufferSize )
|
||||
{
|
||||
char* pEmptyData = new char[nRemainSize];
|
||||
memset(pEmptyData,0x00,nRemainSize);
|
||||
rStream.Write((sal_uInt8*)pEmptyData,nRemainSize);
|
||||
rStream.Seek(nTell);
|
||||
delete [] pEmptyData;
|
||||
}
|
||||
}
|
||||
return rStream;
|
||||
}
|
||||
|
@@ -1365,15 +1365,24 @@ sal_Bool OResultSet::isBookmarkable() const
|
||||
//------------------------------------------------------------------------------
|
||||
void OResultSet::setFetchDirection(sal_Int32 _par0)
|
||||
{
|
||||
N3SQLSetStmtAttr(m_aStatementHandle,SQL_ATTR_CURSOR_TYPE,(SQLPOINTER)_par0,SQL_IS_UINTEGER);
|
||||
OSL_ENSURE(_par0>0,"Illegal fetch direction!");
|
||||
if ( _par0 > 0 )
|
||||
{
|
||||
N3SQLSetStmtAttr(m_aStatementHandle,SQL_ATTR_CURSOR_TYPE,(SQLPOINTER)_par0,SQL_IS_UINTEGER);
|
||||
}
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
void OResultSet::setFetchSize(sal_Int32 _par0)
|
||||
{
|
||||
N3SQLSetStmtAttr(m_aStatementHandle,SQL_ATTR_ROW_ARRAY_SIZE,(SQLPOINTER)_par0,SQL_IS_UINTEGER);
|
||||
delete m_pRowStatusArray;
|
||||
m_pRowStatusArray = new SQLUSMALLINT[_par0];
|
||||
N3SQLSetStmtAttr(m_aStatementHandle,SQL_ATTR_ROW_STATUS_PTR,m_pRowStatusArray,SQL_IS_POINTER);
|
||||
OSL_ENSURE(_par0>0,"Illegal fetch size!");
|
||||
if ( _par0 > 0 )
|
||||
{
|
||||
N3SQLSetStmtAttr(m_aStatementHandle,SQL_ATTR_ROW_ARRAY_SIZE,(SQLPOINTER)_par0,SQL_IS_UINTEGER);
|
||||
delete m_pRowStatusArray;
|
||||
|
||||
m_pRowStatusArray = new SQLUSMALLINT[_par0];
|
||||
N3SQLSetStmtAttr(m_aStatementHandle,SQL_ATTR_ROW_STATUS_PTR,m_pRowStatusArray,SQL_IS_POINTER);
|
||||
}
|
||||
}
|
||||
// -------------------------------------------------------------------------
|
||||
IPropertyArrayHelper* OResultSet::createArrayHelper( ) const
|
||||
|
@@ -60,7 +60,11 @@ OResultSetMetaData::~OResultSetMetaData()
|
||||
);
|
||||
::rtl::OUString sValue;
|
||||
if ( nRet == SQL_SUCCESS )
|
||||
{
|
||||
if ( nRealLen < 0 )
|
||||
nRealLen = BUFFER_LEN;
|
||||
sValue = ::rtl::OUString(pName,nRealLen,m_pConnection->getTextEncoding());
|
||||
}
|
||||
delete [] pName;
|
||||
OTools::ThrowException(m_pConnection,nRet,m_aStatementHandle,SQL_HANDLE_STMT,*this);
|
||||
if(nRealLen > BUFFER_LEN)
|
||||
@@ -74,7 +78,7 @@ OResultSetMetaData::~OResultSetMetaData()
|
||||
&nRealLen,
|
||||
NULL
|
||||
);
|
||||
if ( nRet == SQL_SUCCESS )
|
||||
if ( nRet == SQL_SUCCESS && nRealLen > 0)
|
||||
sValue = ::rtl::OUString(pName,nRealLen,m_pConnection->getTextEncoding());
|
||||
delete [] pName;
|
||||
OTools::ThrowException(m_pConnection,nRet,m_aStatementHandle,SQL_HANDLE_STMT,*this);
|
||||
|
@@ -875,12 +875,16 @@ void OStatement_Base::setFetchDirection(sal_Int32 _par0)
|
||||
void OStatement_Base::setFetchSize(sal_Int32 _par0)
|
||||
{
|
||||
OSL_ENSURE(m_aStatementHandle,"StatementHandle is null!");
|
||||
OSL_ENSURE(_par0>0,"Illegal fetch size!");
|
||||
if ( _par0 > 0 )
|
||||
{
|
||||
|
||||
SQLRETURN nRetCode = N3SQLSetStmtAttr(m_aStatementHandle,SQL_ATTR_ROW_ARRAY_SIZE,(SQLPOINTER)_par0,SQL_IS_UINTEGER);
|
||||
SQLRETURN nRetCode = N3SQLSetStmtAttr(m_aStatementHandle,SQL_ATTR_ROW_ARRAY_SIZE,(SQLPOINTER)_par0,SQL_IS_UINTEGER);
|
||||
|
||||
delete m_pRowStatusArray;
|
||||
m_pRowStatusArray = new SQLUSMALLINT[_par0];
|
||||
nRetCode = N3SQLSetStmtAttr(m_aStatementHandle,SQL_ATTR_ROW_STATUS_PTR,m_pRowStatusArray,SQL_IS_POINTER);
|
||||
delete m_pRowStatusArray;
|
||||
m_pRowStatusArray = new SQLUSMALLINT[_par0];
|
||||
nRetCode = N3SQLSetStmtAttr(m_aStatementHandle,SQL_ATTR_ROW_STATUS_PTR,m_pRowStatusArray,SQL_IS_POINTER);
|
||||
}
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
void OStatement_Base::setMaxFieldSize(sal_Int32 _par0)
|
||||
|
Reference in New Issue
Block a user