24#include <com/sun/star/sdbc/DataType.hpp>
25#include <com/sun/star/sdbc/ResultSetType.hpp>
26#include <com/sun/star/sdbc/ResultSetConcurrency.hpp>
27#include <com/sun/star/sdbc/TransactionIsolation.hpp>
29#include <rtl/ustrbuf.hxx>
39ODatabaseMetaData::ODatabaseMetaData(
const SQLHANDLE _pHandle,
OConnection* _pCon)
41 ,m_aConnectionHandle(_pHandle)
45 OSL_ENSURE(
m_pConnection,
"ODatabaseMetaData::ODatabaseMetaData: No connection set!");
71 pResult->openTypeInfo();
94 pResult->openCatalogs();
121 pResult->openSchemas();
131 const Any& catalog,
const OUString& schema,
const OUString& table,
132 const OUString& columnNamePattern )
139 pResult->openColumnPrivileges(
m_bUseCatalog ? catalog :
Any(),schema,table,columnNamePattern);
149 const Any& catalog,
const OUString& schemaPattern,
const OUString& tableNamePattern,
150 const OUString& columnNamePattern )
157 pResult->openColumns(
m_bUseCatalog ? catalog :
Any(),schemaPattern,tableNamePattern,columnNamePattern);
167 const Any& catalog,
const OUString& schemaPattern,
175 pResult->openTables(
m_bUseCatalog ? catalog :
Any(),schemaPattern,tableNamePattern,types);
185 const Any& catalog,
const OUString& schemaPattern,
186 const OUString& procedureNamePattern,
const OUString& columnNamePattern )
193 pResult->openProcedureColumns(
m_bUseCatalog ? catalog :
Any(),schemaPattern,procedureNamePattern,columnNamePattern);
203 const Any& catalog,
const OUString& schemaPattern,
204 const OUString& procedureNamePattern )
211 pResult->openProcedures(
m_bUseCatalog ? catalog :
Any(),schemaPattern,procedureNamePattern);
221 const Any& catalog,
const OUString& schema,
const OUString& table )
224 bool bSuccess =
false;
332 const Any& catalog,
const OUString& schema,
const OUString& table )
349 const Any& catalog,
const OUString& schema,
const OUString& table )
366 const Any& catalog,
const OUString& schema,
const OUString& table )
383 const Any& catalog,
const OUString& schema,
const OUString& table,
391 pResult->openIndexInfo(
m_bUseCatalog ? catalog :
Any(),schema,table,unique,approximate);
401 const Any& catalog,
const OUString& schema,
const OUString& table, sal_Int32 scope,
409 pResult->openBestRowIdentifier(
m_bUseCatalog ? catalog :
Any(),schema,table,scope,nullable);
419 const Any& catalog,
const OUString& schemaPattern,
const OUString& tableNamePattern )
423 return new OResultSetPrivileges(
this,catalog,schemaPattern,tableNamePattern);
426 pResult->openTablePrivileges(
m_bUseCatalog ? catalog :
Any(),schemaPattern,tableNamePattern);
431 const Any& primaryCatalog,
const OUString& primarySchema,
432 const OUString& primaryTable,
const Any& foreignCatalog,
433 const OUString& foreignSchema,
const OUString& foreignTable )
440 pResult->openForeignKeys(
m_bUseCatalog ? primaryCatalog :
Any(),primarySchema.toChar() ==
'%' ? &primarySchema :
nullptr,&primaryTable,
441 m_bUseCatalog ? foreignCatalog :
Any(), foreignSchema.toChar() ==
'%' ? &foreignSchema :
nullptr,&foreignTable);
454 return aVal.toChar() ==
'Y';
461 return nValue == SQL_IC_LOWER;
468 return nValue == SQL_IC_LOWER;
475 return nValue == SQL_IC_MIXED;
482 return nValue == SQL_IC_MIXED;
489 return nValue == SQL_IC_UPPER;
496 return nValue == SQL_IC_UPPER;
503 return (
nValue & SQL_AT_ADD_COLUMN) == SQL_AT_ADD_COLUMN;
510 return ((
nValue & SQL_AT_DROP_COLUMN) == SQL_AT_DROP_COLUMN) ||
511 ((
nValue & SQL_AT_DROP_COLUMN_CASCADE) == SQL_AT_DROP_COLUMN_CASCADE) ||
512 ((
nValue & SQL_AT_DROP_COLUMN_RESTRICT) == SQL_AT_DROP_COLUMN_RESTRICT);
526 return nValue == SQL_NNC_NON_NULL;
555 return nValue != SQL_CN_NONE;
563 return nValue == SQL_CL_START;
570 return nValue == SQL_TC_DDL_IGNORE;
577 return nValue == SQL_TC_DDL_COMMIT;
584 return nValue == SQL_TC_DML;
591 return nValue == SQL_TC_ALL;
598 return (
nValue & SQL_CA1_POS_DELETE) == SQL_CA1_POS_DELETE;
605 return (
nValue & SQL_CA1_POS_UPDATE) == SQL_CA1_POS_UPDATE;
612 return nValue == SQL_CB_PRESERVE ||
nValue == SQL_CB_CLOSE;
619 return nValue == SQL_CB_PRESERVE ||
nValue == SQL_CB_CLOSE;
626 return nValue == SQL_CB_PRESERVE;
633 return nValue == SQL_CB_PRESERVE;
640 return (
nValue &
static_cast<SQLUINTEGER
>(level)) ==
static_cast<SQLUINTEGER
>(level);
647 return (
nValue & SQL_SU_DML_STATEMENTS) == SQL_SU_DML_STATEMENTS;
654 return static_cast<bool>(
nValue & SQL_SC_SQL92_FULL);
661 return static_cast<bool>(
nValue &SQL_SC_SQL92_ENTRY);
668 return aStr.toChar() ==
'Y';
675 return (
nValue & SQL_SU_INDEX_DEFINITION) == SQL_SU_INDEX_DEFINITION;
682 return (
nValue & SQL_SU_TABLE_DEFINITION) == SQL_SU_TABLE_DEFINITION;
690 return (
nValue & SQL_CU_TABLE_DEFINITION) == SQL_CU_TABLE_DEFINITION;
698 return (
nValue & SQL_CU_INDEX_DEFINITION) == SQL_CU_INDEX_DEFINITION;
706 return (
nValue & SQL_CU_DML_STATEMENTS) == SQL_CU_DML_STATEMENTS;
713 return ((
nValue & (SQL_OJ_FULL|SQL_OJ_LEFT|SQL_OJ_RIGHT|SQL_OJ_NESTED|SQL_OJ_NOT_ORDERED|SQL_OJ_ALL_COMPARISON_OPS|SQL_OJ_INNER)) != 0);
723 pResult->openTablesTypes();
757 return nValue != SQL_TC_NONE;
764 return aValue.toChar() ==
'Y';
771 return aValue.toChar() ==
'Y';
778 return (
nValue & SQL_CA1_POSITIONED_UPDATE) == SQL_CA1_POSITIONED_UPDATE;
785 return aValue.toChar() ==
'Y';
797 return nValue == SQL_FILE_CATALOG;
804 return nValue == SQL_FILE_TABLE;
811 return (
nValue & SQL_FN_CVT_CONVERT) == SQL_FN_CVT_CONVERT;
818 return nValue == SQL_CB_NULL;
825 return aValue.toChar() ==
'Y';
832 return nValue != SQL_CN_NONE;
837 if(fromType == toType)
846 case DataType::TINYINT:
849 case DataType::SMALLINT:
852 case DataType::INTEGER:
855 case DataType::BIGINT:
858 case DataType::FLOAT:
864 case DataType::DOUBLE:
867 case DataType::NUMERIC:
870 case DataType::DECIMAL:
876 case DataType::VARCHAR:
879 case DataType::LONGVARCHAR:
889 case DataType::TIMESTAMP:
892 case DataType::BINARY:
895 case DataType::VARBINARY:
898 case DataType::LONGVARBINARY:
902 case DataType::SQLNULL:
905 case DataType::OTHER:
908 case DataType::OBJECT:
911 case DataType::DISTINCT:
914 case DataType::STRUCT:
917 case DataType::ARRAY:
924 bool bConvert =
false;
928 bConvert = (
nValue & SQL_CVT_BIT) == SQL_CVT_BIT;
930 case DataType::TINYINT:
931 bConvert = (
nValue & SQL_CVT_TINYINT) == SQL_CVT_TINYINT;
933 case DataType::SMALLINT:
934 bConvert = (
nValue & SQL_CVT_SMALLINT) == SQL_CVT_SMALLINT;
936 case DataType::INTEGER:
937 bConvert = (
nValue & SQL_CVT_INTEGER) == SQL_CVT_INTEGER;
939 case DataType::BIGINT:
940 bConvert = (
nValue & SQL_CVT_BIGINT) == SQL_CVT_BIGINT;
942 case DataType::FLOAT:
943 bConvert = (
nValue & SQL_CVT_FLOAT) == SQL_CVT_FLOAT;
946 bConvert = (
nValue & SQL_CVT_REAL) == SQL_CVT_REAL;
948 case DataType::DOUBLE:
949 bConvert = (
nValue & SQL_CVT_DOUBLE) == SQL_CVT_DOUBLE;
951 case DataType::NUMERIC:
952 bConvert = (
nValue & SQL_CVT_NUMERIC) == SQL_CVT_NUMERIC;
954 case DataType::DECIMAL:
955 bConvert = (
nValue & SQL_CVT_DECIMAL) == SQL_CVT_DECIMAL;
958 bConvert = (
nValue & SQL_CVT_CHAR) == SQL_CVT_CHAR;
960 case DataType::VARCHAR:
961 bConvert = (
nValue & SQL_CVT_VARCHAR) == SQL_CVT_VARCHAR;
963 case DataType::LONGVARCHAR:
965 bConvert = (
nValue & SQL_CVT_LONGVARCHAR) == SQL_CVT_LONGVARCHAR;
968 bConvert = (
nValue & SQL_CVT_DATE) == SQL_CVT_DATE;
971 bConvert = (
nValue & SQL_CVT_TIME) == SQL_CVT_TIME;
973 case DataType::TIMESTAMP:
974 bConvert = (
nValue & SQL_CVT_TIMESTAMP) == SQL_CVT_TIMESTAMP;
976 case DataType::BINARY:
977 bConvert = (
nValue & SQL_CVT_BINARY) == SQL_CVT_BINARY;
979 case DataType::VARBINARY:
980 bConvert = (
nValue & SQL_CVT_VARBINARY) == SQL_CVT_VARBINARY;
982 case DataType::LONGVARBINARY:
984 bConvert = (
nValue & SQL_CVT_LONGVARBINARY) == SQL_CVT_LONGVARBINARY;
995 return aValue.toChar() ==
'Y';
1002 return nValue != SQL_GB_NOT_SUPPORTED;
1009 return nValue != SQL_GB_GROUP_BY_CONTAINS_SELECT;
1016 return nValue == SQL_GB_NO_RELATION;
1023 return aValue.toChar() ==
'Y';
1030 return aValue.toChar() ==
'Y';
1037 return aValue.toChar() ==
'Y';
1044 return aValue.toChar() ==
'N';
1051 return (
nValue & SQL_U_UNION) == SQL_U_UNION;
1058 return (
nValue & SQL_U_UNION_ALL) == SQL_U_UNION_ALL;
1065 return nValue == SQL_IC_MIXED;
1072 return nValue == SQL_IC_MIXED;
1079 return nValue == SQL_NC_END;
1086 return nValue == SQL_NC_START;
1093 return nValue == SQL_NC_HIGH;
1100 return nValue == SQL_NC_LOW;
1107 return (
nValue & SQL_SU_PROCEDURE_INVOCATION) == SQL_SU_PROCEDURE_INVOCATION;
1114 return (
nValue & SQL_SU_PRIVILEGE_DEFINITION) == SQL_SU_PRIVILEGE_DEFINITION;
1122 return (
nValue & SQL_CU_PROCEDURE_INVOCATION) == SQL_CU_PROCEDURE_INVOCATION;
1130 return (
nValue & SQL_CU_PRIVILEGE_DEFINITION) == SQL_CU_PRIVILEGE_DEFINITION;
1137 return (
nValue & SQL_SQ_CORRELATED_SUBQUERIES) == SQL_SQ_CORRELATED_SUBQUERIES;
1144 return (
nValue & SQL_SQ_COMPARISON) == SQL_SQ_COMPARISON;
1151 return (
nValue & SQL_SQ_EXISTS) == SQL_SQ_EXISTS;
1158 return (
nValue & SQL_SQ_IN) == SQL_SQ_IN;
1165 return (
nValue & SQL_SQ_QUANTIFIED) == SQL_SQ_QUANTIFIED;
1172 return static_cast<bool>(
nValue & SQL_SC_SQL92_INTERMEDIATE);
1185 if ( aValue.isEmpty() )
1245 return o3tl::toInt32(aValue.subView(0,aValue.indexOf(
'.')));
1247catch (
const SQLException &)
1255 sal_Int32 nValueTranslated;
1259 case SQL_TXN_READ_UNCOMMITTED:
1260 nValueTranslated = css::sdbc::TransactionIsolation::READ_UNCOMMITTED;
1262 case SQL_TXN_READ_COMMITTED:
1263 nValueTranslated = css::sdbc::TransactionIsolation::READ_COMMITTED;
1265 case SQL_TXN_REPEATABLE_READ:
1266 nValueTranslated = css::sdbc::TransactionIsolation::REPEATABLE_READ;
1268 case SQL_TXN_SERIALIZABLE:
1269 nValueTranslated = css::sdbc::TransactionIsolation::SERIALIZABLE;
1272 nValueTranslated = 0;
1274 return nValueTranslated;
1281 return o3tl::toInt32(aValue.subView(0,aValue.lastIndexOf(
'.')));
1283catch (
const SQLException &)
1305 OUStringBuffer aValue;
1307 if(
nValue & SQL_FN_STR_ASCII)
1308 aValue.append(
"ASCII,");
1309 if(
nValue & SQL_FN_STR_BIT_LENGTH)
1310 aValue.append(
"BIT_LENGTH,");
1311 if(
nValue & SQL_FN_STR_CHAR)
1312 aValue.append(
"CHAR,");
1313 if(
nValue & SQL_FN_STR_CHAR_LENGTH)
1314 aValue.append(
"CHAR_LENGTH,");
1315 if(
nValue & SQL_FN_STR_CHARACTER_LENGTH)
1316 aValue.append(
"CHARACTER_LENGTH,");
1317 if(
nValue & SQL_FN_STR_CONCAT)
1318 aValue.append(
"CONCAT,");
1319 if(
nValue & SQL_FN_STR_DIFFERENCE)
1320 aValue.append(
"DIFFERENCE,");
1321 if(
nValue & SQL_FN_STR_INSERT)
1322 aValue.append(
"INSERT,");
1323 if(
nValue & SQL_FN_STR_LCASE)
1324 aValue.append(
"LCASE,");
1325 if(
nValue & SQL_FN_STR_LEFT)
1326 aValue.append(
"LEFT,");
1327 if(
nValue & SQL_FN_STR_LENGTH)
1328 aValue.append(
"LENGTH,");
1329 if(
nValue & SQL_FN_STR_LOCATE)
1330 aValue.append(
"LOCATE,");
1331 if(
nValue & SQL_FN_STR_LOCATE_2)
1332 aValue.append(
"LOCATE_2,");
1333 if(
nValue & SQL_FN_STR_LTRIM)
1334 aValue.append(
"LTRIM,");
1335 if(
nValue & SQL_FN_STR_OCTET_LENGTH)
1336 aValue.append(
"OCTET_LENGTH,");
1337 if(
nValue & SQL_FN_STR_POSITION)
1338 aValue.append(
"POSITION,");
1339 if(
nValue & SQL_FN_STR_REPEAT)
1340 aValue.append(
"REPEAT,");
1341 if(
nValue & SQL_FN_STR_REPLACE)
1342 aValue.append(
"REPLACE,");
1343 if(
nValue & SQL_FN_STR_RIGHT)
1344 aValue.append(
"RIGHT,");
1345 if(
nValue & SQL_FN_STR_RTRIM)
1346 aValue.append(
"RTRIM,");
1347 if(
nValue & SQL_FN_STR_SOUNDEX)
1348 aValue.append(
"SOUNDEX,");
1349 if(
nValue & SQL_FN_STR_SPACE)
1350 aValue.append(
"SPACE,");
1351 if(
nValue & SQL_FN_STR_SUBSTRING)
1352 aValue.append(
"SUBSTRING,");
1353 if(
nValue & SQL_FN_STR_UCASE)
1354 aValue.append(
"UCASE,");
1357 if ( !aValue.isEmpty() )
1358 aValue.setLength(aValue.getLength()-1);
1360 return aValue.makeStringAndClear();
1366 OUStringBuffer aValue;
1369 if(
nValue & SQL_FN_TD_CURRENT_DATE)
1370 aValue.append(
"CURRENT_DATE,");
1371 if(
nValue & SQL_FN_TD_CURRENT_TIME)
1372 aValue.append(
"CURRENT_TIME,");
1373 if(
nValue & SQL_FN_TD_CURRENT_TIMESTAMP)
1374 aValue.append(
"CURRENT_TIMESTAMP,");
1375 if(
nValue & SQL_FN_TD_CURDATE)
1376 aValue.append(
"CURDATE,");
1377 if(
nValue & SQL_FN_TD_CURTIME)
1378 aValue.append(
"CURTIME,");
1379 if(
nValue & SQL_FN_TD_DAYNAME)
1380 aValue.append(
"DAYNAME,");
1381 if(
nValue & SQL_FN_TD_DAYOFMONTH)
1382 aValue.append(
"DAYOFMONTH,");
1383 if(
nValue & SQL_FN_TD_DAYOFWEEK)
1384 aValue.append(
"DAYOFWEEK,");
1385 if(
nValue & SQL_FN_TD_DAYOFYEAR)
1386 aValue.append(
"DAYOFYEAR,");
1387 if(
nValue & SQL_FN_TD_EXTRACT)
1388 aValue.append(
"EXTRACT,");
1389 if(
nValue & SQL_FN_TD_HOUR)
1390 aValue.append(
"HOUR,");
1391 if(
nValue & SQL_FN_TD_MINUTE)
1392 aValue.append(
"MINUTE,");
1393 if(
nValue & SQL_FN_TD_MONTH)
1394 aValue.append(
"MONTH,");
1395 if(
nValue & SQL_FN_TD_MONTHNAME)
1396 aValue.append(
"MONTHNAME,");
1397 if(
nValue & SQL_FN_TD_NOW)
1398 aValue.append(
"NOW,");
1399 if(
nValue & SQL_FN_TD_QUARTER)
1400 aValue.append(
"QUARTER,");
1401 if(
nValue & SQL_FN_TD_SECOND)
1402 aValue.append(
"SECOND,");
1403 if(
nValue & SQL_FN_TD_TIMESTAMPADD)
1404 aValue.append(
"TIMESTAMPADD,");
1405 if(
nValue & SQL_FN_TD_TIMESTAMPDIFF)
1406 aValue.append(
"TIMESTAMPDIFF,");
1407 if(
nValue & SQL_FN_TD_WEEK)
1408 aValue.append(
"WEEK,");
1409 if(
nValue & SQL_FN_TD_YEAR)
1410 aValue.append(
"YEAR,");
1412 if ( !aValue.isEmpty() )
1413 aValue.setLength(aValue.getLength()-1);
1415 return aValue.makeStringAndClear();
1421 OUStringBuffer aValue;
1424 if(
nValue & SQL_FN_SYS_DBNAME)
1425 aValue.append(
"DBNAME,");
1426 if(
nValue & SQL_FN_SYS_IFNULL)
1427 aValue.append(
"IFNULL,");
1428 if(
nValue & SQL_FN_SYS_USERNAME)
1429 aValue.append(
"USERNAME,");
1431 if ( !aValue.isEmpty() )
1432 aValue.setLength(aValue.getLength()-1);
1434 return aValue.makeStringAndClear();
1440 OUStringBuffer aValue;
1443 if(
nValue & SQL_FN_NUM_ABS)
1444 aValue.append(
"ABS,");
1445 if(
nValue & SQL_FN_NUM_ACOS)
1446 aValue.append(
"ACOS,");
1447 if(
nValue & SQL_FN_NUM_ASIN)
1448 aValue.append(
"ASIN,");
1449 if(
nValue & SQL_FN_NUM_ATAN)
1450 aValue.append(
"ATAN,");
1451 if(
nValue & SQL_FN_NUM_ATAN2)
1452 aValue.append(
"ATAN2,");
1453 if(
nValue & SQL_FN_NUM_CEILING)
1454 aValue.append(
"CEILING,");
1455 if(
nValue & SQL_FN_NUM_COS)
1456 aValue.append(
"COS,");
1457 if(
nValue & SQL_FN_NUM_COT)
1458 aValue.append(
"COT,");
1459 if(
nValue & SQL_FN_NUM_DEGREES)
1460 aValue.append(
"DEGREES,");
1461 if(
nValue & SQL_FN_NUM_EXP)
1462 aValue.append(
"EXP,");
1463 if(
nValue & SQL_FN_NUM_FLOOR)
1464 aValue.append(
"FLOOR,");
1465 if(
nValue & SQL_FN_NUM_LOG)
1466 aValue.append(
"LOGF,");
1467 if(
nValue & SQL_FN_NUM_LOG10)
1468 aValue.append(
"LOG10,");
1469 if(
nValue & SQL_FN_NUM_MOD)
1470 aValue.append(
"MOD,");
1471 if(
nValue & SQL_FN_NUM_PI)
1472 aValue.append(
"PI,");
1473 if(
nValue & SQL_FN_NUM_POWER)
1474 aValue.append(
"POWER,");
1475 if(
nValue & SQL_FN_NUM_RADIANS)
1476 aValue.append(
"RADIANS,");
1477 if(
nValue & SQL_FN_NUM_RAND)
1478 aValue.append(
"RAND,");
1479 if(
nValue & SQL_FN_NUM_ROUND)
1480 aValue.append(
"ROUND,");
1481 if(
nValue & SQL_FN_NUM_SIGN)
1482 aValue.append(
"SIGN,");
1483 if(
nValue & SQL_FN_NUM_SIN)
1484 aValue.append(
"SIN,");
1485 if(
nValue & SQL_FN_NUM_SQRT)
1486 aValue.append(
"SQRT,");
1487 if(
nValue & SQL_FN_NUM_TAN)
1488 aValue.append(
"TAN,");
1489 if(
nValue & SQL_FN_NUM_TRUNCATE)
1490 aValue.append(
"TRUNCATE,");
1492 if ( !aValue.isEmpty() )
1493 aValue.setLength(aValue.getLength()-1);
1495 return aValue.makeStringAndClear();
1504 "connectivity.odbc",
1505 "SQL_ODBC_SQL_CONFORMANCE is neither MINIMAL nor CORE nor EXTENDED");
1506 return nValue == SQL_OSC_EXTENDED;
1515 "connectivity.odbc",
1516 "SQL_ODBC_SQL_CONFORMANCE is neither MINIMAL nor CORE nor EXTENDED");
1517 return nValue == SQL_OSC_CORE ||
nValue == SQL_OSC_EXTENDED;
1526 "connectivity.odbc",
1527 "SQL_ODBC_SQL_CONFORMANCE is neither MINIMAL nor CORE nor EXTENDED");
1528 return nValue == SQL_OSC_MINIMUM ||
nValue == SQL_OSC_CORE ||
nValue == SQL_OSC_EXTENDED;
1535 return (
nValue & SQL_OJ_FULL) == SQL_OJ_FULL;
1575 return (
nValue &
static_cast<SQLUINTEGER
>(setType)) ==
static_cast<SQLUINTEGER
>(setType);
1581 SQLUSMALLINT nAskFor( SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 );
1585 case ResultSetType::FORWARD_ONLY:
1586 nAskFor = SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2;
1588 case ResultSetType::SCROLL_INSENSITIVE:
1589 nAskFor = SQL_STATIC_CURSOR_ATTRIBUTES2;
1591 case ResultSetType::SCROLL_SENSITIVE:
1592 nAskFor = SQL_DYNAMIC_CURSOR_ATTRIBUTES2;
1600 case ResultSetConcurrency::READ_ONLY:
1601 bRet = (
nValue & SQL_CA2_READ_ONLY_CONCURRENCY) == SQL_CA2_READ_ONLY_CONCURRENCY;
1603 case ResultSetConcurrency::UPDATABLE:
1604 bRet = (
nValue & SQL_CA2_OPT_VALUES_CONCURRENCY) == SQL_CA2_OPT_VALUES_CONCURRENCY;
1613 SQLUSMALLINT nAskFor( SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 );
1617 case ResultSetType::FORWARD_ONLY:
1618 nAskFor = SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2;
1620 case ResultSetType::SCROLL_INSENSITIVE:
1621 nAskFor = SQL_STATIC_CURSOR_ATTRIBUTES2;
1623 case ResultSetType::SCROLL_SENSITIVE:
1624 nAskFor = SQL_DYNAMIC_CURSOR_ATTRIBUTES2;
1629 return (
nValue & SQL_CA2_SENSITIVITY_UPDATES) == SQL_CA2_SENSITIVITY_UPDATES;
1635 SQLUSMALLINT nAskFor( SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 );
1639 case ResultSetType::FORWARD_ONLY:
1640 nAskFor = SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2;
1642 case ResultSetType::SCROLL_INSENSITIVE:
1643 nAskFor = SQL_STATIC_CURSOR_ATTRIBUTES2;
1645 case ResultSetType::SCROLL_SENSITIVE:
1646 nAskFor = SQL_DYNAMIC_CURSOR_ATTRIBUTES2;
1651 return (
nValue & SQL_CA2_SENSITIVITY_DELETIONS) != SQL_CA2_SENSITIVITY_DELETIONS;
1657 SQLUSMALLINT nAskFor( SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 );
1661 case ResultSetType::FORWARD_ONLY:
1662 nAskFor = SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2;
1664 case ResultSetType::SCROLL_INSENSITIVE:
1665 nAskFor = SQL_STATIC_CURSOR_ATTRIBUTES2;
1667 case ResultSetType::SCROLL_SENSITIVE:
1668 nAskFor = SQL_DYNAMIC_CURSOR_ATTRIBUTES2;
1673 return (
nValue & SQL_CA2_SENSITIVITY_ADDITIONS) == SQL_CA2_SENSITIVITY_ADDITIONS;
bool isCatalogUsed() const
bool isIgnoreDriverPrivilegesEnabled() const
virtual sal_Bool SAL_CALL isReadOnly() override
bool preventGetVersionColumns() const
#define SAL_WARN_IF(condition, area, stream)
sal_Int32 toInt32(std::u16string_view str, sal_Int16 radix=10)