summaryrefslogtreecommitdiff
path: root/connectivity
AgeCommit message (Collapse)Author
2024-09-24cid#1607586 explicitly return after JNI ThrowNewCaolán McNamara
Change-Id: Ib863d3c9769602088fae8d4d51d0449101979cbd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173850 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-09-24cid#1607586 Overflowed return valueCaolán McNamara
and cid#1608074 Overflowed return value cid#1607598 Overflowed return value Change-Id: Ib884c10083c01578a7a0926d5f2f3c2d1f7501c1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173833 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-09-23use more concrete UNO types in connectivityNoel Grandin
Change-Id: I313dae1589d8097d3c9f3c16ae978cdc07d54ebf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173815 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-09-21cid#1607193 silence Overflowed constantCaolán McNamara
Change-Id: If3728d8b5410c26637411335ac2bb28a29a55fc3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173749 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
2024-09-21cid#1607126 silence Overflowed constantCaolán McNamara
and cid#1607075 Overflowed constant cid#1606969 Overflowed constant cid#1606652 Overflowed constant Change-Id: I7f7ee294438b73785b4005eb529bda98fdddfc97 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173741 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-09-15Simplify use of connectivity::OConnectionWrapperMike Kaganski
Make it use cppu::WeakComponentImplHelper, because all its derived classes used that template. In the derived classes, switch to use of cppu::ImplInheritanceHelper. That simplifies the hierarchy, and doesn't require to re-implement many basic methods. Change-Id: I40ec05a471af4437098586d20540f9a815677952 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173370 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2024-09-12use more concrete UNO classes in connectivityNoel Grandin
Change-Id: I5c70278add0aa0b0c4a7680c6615b75b688f2180 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173247 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins
2024-09-12These bogus -Wdangling-reference still hit with current GCC 15 trunkStephan Bergmann
Change-Id: Ice2be2156474cf486ad1c461d65e2711ebf43d2f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173232 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-09-11cid#1607586 Overflowed return valueCaolán McNamara
doesn't make sense to compare to std::numeric_limits<sal_Int64>::max here, while sal_Int32 does Change-Id: Ic19beb6c2a0a46c5b45d37e833d566d91ddc10cd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173161 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
2024-09-08tdf#155751: dBase: BETWEEN won't include first and last value in queriesJulien Nabet
Since the beginning: commit 86c5930e98a48fef73253535fa7508c187a093f0 Author: Jens-Heiner Rechtien <hr@openoffice.org> Date: Mon Aug 2 16:04:09 2004 +0000 INTEGRATION: CWS insight01 (1.19.14); FILE MERGED 2004/06/03 14:48:29 oj 1.19.14.3: #i18836# imple between key word 2004/05/28 11:16:26 oj 1.19.14.2: RESYNC: (1.19-1.20); FILE MERGED 2004/05/12 10:48:11 oj 1.19.14.1: change SQLFilterOperator Change-Id: I75d00c313072e08279ca2f37cb65bb3414447d16 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173036 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2024-09-04Use value-initialization instead of conditional compilationMike Kaganski
Also fix loplugin:stringviewparam warning, unexpectedly appeared here - see https://ci.libreoffice.org/job/gerrit_linux_clang_dbgutil/169049/consoleFull#-882392342baec2b5c-2b20-4190-a3fa-ceac4be9cf93 Change-Id: I789f23c946a55194baa2b4e9a3f3c2a70385301d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172852 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-09-04No need to copy the data, only to limit the size of bytes copied laterMike Kaganski
Change-Id: I76d5c3cccf64a69efe41dd850fa2542e54c71428 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172851 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2024-09-04In MSVC, non-static constexpr objects are initialized at run-timeMike Kaganski
Yes, it's a memcpy from a compile-time blob, but still they are stack-allocated, so cycles are spent on their initialization. Change-Id: I152369887a7769087e5dfe139ea82498533835b5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172850 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2024-09-04Optimize taking powers of 10, and move to the only place it's usedMike Kaganski
Change-Id: I78b1ecb037f84ba4e7894d2a5ab088b7acb3f210 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172802 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-09-03tdf#162761: fix roundingMike Kaganski
Regression after commit a245fd604c11f4bdbd1fdc4dd52e2a7f3880d85b (tdf#156530: fix OPreparedStatement::setString); when the Any has a double, its rounding must take its sign into account. Change-Id: I783454f1fbb1b1775a06d611f212575631fd5e8b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172800 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-09-01cid#1607035 silence Overflowed integer argumentCaolán McNamara
Change-Id: Iddf32ee09c8cbc4a7f80c943a0e472f018881be5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172716 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-25cid#1608296 silence Overflowed integer argumentCaolán McNamara
and cid#1606815 Overflowed integer argument cid#1606617 Overflowed integer argument Change-Id: I4569190edd9b8d65e9b080a7ad0fac391f4a657e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172348 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-21Simplify a bitMike Kaganski
Change-Id: I35ca6c1981bff2e7b91f7c1900fd3bdf3f98ef3f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172174 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2024-08-20cid#1607042 silence Overflowed integer argumentCaolán McNamara
Change-Id: I416f9f22c6ba464ef6a3416a3a0cebc34f2b6725 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172094 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-16cid#1557618 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1557535 COPY_INSTEAD_OF_MOVE cid#1557520 COPY_INSTEAD_OF_MOVE cid#1557513 COPY_INSTEAD_OF_MOVE cid#1557503 COPY_INSTEAD_OF_MOVE cid#1557487 COPY_INSTEAD_OF_MOVE cid#1557483 COPY_INSTEAD_OF_MOVE cid#1557479 COPY_INSTEAD_OF_MOVE cid#1557474 COPY_INSTEAD_OF_MOVE cid#1557461 COPY_INSTEAD_OF_MOVE cid#1557446 COPY_INSTEAD_OF_MOVE cid#1557445 COPY_INSTEAD_OF_MOVE cid#1557441 COPY_INSTEAD_OF_MOVE cid#1557435 COPY_INSTEAD_OF_MOVE cid#1557433 COPY_INSTEAD_OF_MOVE cid#1557429 COPY_INSTEAD_OF_MOVE cid#1557375 COPY_INSTEAD_OF_MOVE cid#1557372 COPY_INSTEAD_OF_MOVE cid#1557356 COPY_INSTEAD_OF_MOVE cid#1557350 COPY_INSTEAD_OF_MOVE cid#1557344 COPY_INSTEAD_OF_MOVE cid#1557339 COPY_INSTEAD_OF_MOVE cid#1557332 COPY_INSTEAD_OF_MOVE cid#1557330 COPY_INSTEAD_OF_MOVE cid#1557328 COPY_INSTEAD_OF_MOVE cid#1557323 COPY_INSTEAD_OF_MOVE cid#1557315 COPY_INSTEAD_OF_MOVE cid#1557313 COPY_INSTEAD_OF_MOVE cid#1557304 COPY_INSTEAD_OF_MOVE cid#1557297 COPY_INSTEAD_OF_MOVE cid#1557291 COPY_INSTEAD_OF_MOVE cid#1557290 COPY_INSTEAD_OF_MOVE cid#1557271 COPY_INSTEAD_OF_MOVE cid#1557266 COPY_INSTEAD_OF_MOVE cid#1557262 COPY_INSTEAD_OF_MOVE cid#1557259 COPY_INSTEAD_OF_MOVE cid#1557246 COPY_INSTEAD_OF_MOVE cid#1557242 COPY_INSTEAD_OF_MOVE cid#1557241 COPY_INSTEAD_OF_MOVE cid#1557236 COPY_INSTEAD_OF_MOVE cid#1557228 COPY_INSTEAD_OF_MOVE cid#1557225 COPY_INSTEAD_OF_MOVE cid#1557221 COPY_INSTEAD_OF_MOVE cid#1557217 COPY_INSTEAD_OF_MOVE cid#1557213 COPY_INSTEAD_OF_MOVE cid#1557211 COPY_INSTEAD_OF_MOVE cid#1557209 COPY_INSTEAD_OF_MOVE cid#1557205 COPY_INSTEAD_OF_MOVE cid#1557204 COPY_INSTEAD_OF_MOVE cid#1557193 COPY_INSTEAD_OF_MOVE cid#1556082 COPY_INSTEAD_OF_MOVE Change-Id: I07f195a79a69d4bac0d14317854efc88d6fe94d7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171927 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-14cid#1557980 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1557869 COPY_INSTEAD_OF_MOVE cid#1557807 COPY_INSTEAD_OF_MOVE cid#1557804 COPY_INSTEAD_OF_MOVE cid#1557799 COPY_INSTEAD_OF_MOVE cid#1557781 COPY_INSTEAD_OF_MOVE cid#1557781 COPY_INSTEAD_OF_MOVE cid#1557766 COPY_INSTEAD_OF_MOVE cid#1557746 COPY_INSTEAD_OF_MOVE cid#1557737 COPY_INSTEAD_OF_MOVE Change-Id: I1866c576f525ea697c62e9e0a96890e5fdaa780f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171795 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-11cid#1558088 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1558080 COPY_INSTEAD_OF_MOVE cid#1558077 COPY_INSTEAD_OF_MOVE cid#1558055 COPY_INSTEAD_OF_MOVE cid#1558043 COPY_INSTEAD_OF_MOVE cid#1558039 COPY_INSTEAD_OF_MOVE cid#1558015 COPY_INSTEAD_OF_MOVE cid#1558014 COPY_INSTEAD_OF_MOVE cid#1558009 COPY_INSTEAD_OF_MOVE cid#1558002 COPY_INSTEAD_OF_MOVE cid#1557998 COPY_INSTEAD_OF_MOVE cid#1557996 COPY_INSTEAD_OF_MOVE cid#1557990 COPY_INSTEAD_OF_MOVE cid#1557986 COPY_INSTEAD_OF_MOVE cid#1557980 COPY_INSTEAD_OF_MOVE cid#1557971 COPY_INSTEAD_OF_MOVE cid#1557968 COPY_INSTEAD_OF_MOVE cid#1557967 COPY_INSTEAD_OF_MOVE cid#1557961 COPY_INSTEAD_OF_MOVE cid#1557959 COPY_INSTEAD_OF_MOVE cid#1557958 COPY_INSTEAD_OF_MOVE cid#1557956 COPY_INSTEAD_OF_MOVE cid#1557953 COPY_INSTEAD_OF_MOVE cid#1557949 COPY_INSTEAD_OF_MOVE cid#1557947 COPY_INSTEAD_OF_MOVE cid#1557940 COPY_INSTEAD_OF_MOVE cid#1557931 COPY_INSTEAD_OF_MOVE cid#1557930 COPY_INSTEAD_OF_MOVE cid#1557915 COPY_INSTEAD_OF_MOVE cid#1557913 COPY_INSTEAD_OF_MOVE cid#1557910 COPY_INSTEAD_OF_MOVE cid#1557886 COPY_INSTEAD_OF_MOVE cid#1557884 COPY_INSTEAD_OF_MOVE cid#1557880 COPY_INSTEAD_OF_MOVE cid#1557875 COPY_INSTEAD_OF_MOVE cid#1557871 COPY_INSTEAD_OF_MOVE cid#1557862 COPY_INSTEAD_OF_MOVE cid#1557847 COPY_INSTEAD_OF_MOVE cid#1557845 COPY_INSTEAD_OF_MOVE cid#1557844 COPY_INSTEAD_OF_MOVE cid#1557843 COPY_INSTEAD_OF_MOVE cid#1557838 COPY_INSTEAD_OF_MOVE cid#1557835 COPY_INSTEAD_OF_MOVE cid#1557834 COPY_INSTEAD_OF_MOVE cid#1557828 COPY_INSTEAD_OF_MOVE cid#1557823 COPY_INSTEAD_OF_MOVE cid#1557817 COPY_INSTEAD_OF_MOVE cid#1557813 COPY_INSTEAD_OF_MOVE cid#1557812 COPY_INSTEAD_OF_MOVE Change-Id: I55d4a920daa2d148683419169eb828325fd3c757 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171732 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-09cid#1556026 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1556027 COPY_INSTEAD_OF_MOVE cid#1556030 COPY_INSTEAD_OF_MOVE cid#1556032 COPY_INSTEAD_OF_MOVE cid#1556036 COPY_INSTEAD_OF_MOVE cid#1556049 COPY_INSTEAD_OF_MOVE cid#1557490 COPY_INSTEAD_OF_MOVE Change-Id: If694c4d518323a8ae58bb13569f401b2b36cd427 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171704 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
2024-08-06cid#555593 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1555849 COPY_INSTEAD_OF_MOVE cid#1555936 COPY_INSTEAD_OF_MOVE cid#1555951 COPY_INSTEAD_OF_MOVE cid#1555955 COPY_INSTEAD_OF_MOVE cid#1555960 COPY_INSTEAD_OF_MOVE cid#1555964 COPY_INSTEAD_OF_MOVE cid#1555965 COPY_INSTEAD_OF_MOVE cid#1555975 COPY_INSTEAD_OF_MOVE cid#1555979 COPY_INSTEAD_OF_MOVE cid#1555987 COPY_INSTEAD_OF_MOVE cid#1555990 COPY_INSTEAD_OF_MOVE cid#1555991 COPY_INSTEAD_OF_MOVE cid#1556002 COPY_INSTEAD_OF_MOVE cid#1556008 COPY_INSTEAD_OF_MOVE cid#1556011 COPY_INSTEAD_OF_MOVE cid#1556015 COPY_INSTEAD_OF_MOVE cid#1556017 COPY_INSTEAD_OF_MOVE cid#1556023 COPY_INSTEAD_OF_MOVE Change-Id: I8ab99d8e52a1780173a4272c59d408432c29de9f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171572 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-06tdf#162340: handle target column scale in setObjectWithInfoMike Kaganski
In commit f1121362f3dd4287577dd7952c6f00a524a81111 (tdf#156530: fix OPreparedStatement::setString, 2024-07-03), I misused the method's 'scale' argument, as the number of decimals in the target column. It seems that the method was modelled after JDBC's setObject taking four arguments [1], which use is also unclear to me, but it likely is intended to describe input data. Anyway, all our implementations either pass the scale to next implementation, or ignore it. The problem was when 'x' was a string like '0.1370', and 'scale' was 0. The passed 'scale' was used, instead of the target column's; and that incorrectly truncated the number to 0. [1] https://docs.oracle.com/javase/8/docs/api/java/sql/PreparedStatement.html#setObject-int-java.lang.Object-int-int- Change-Id: Ib507d32706551517cc0a8a3cba351093549d7026 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171506 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-08-04tdf#162339: MariaDB: Table with spaces in table name couldn't be deleted by GUIJulien Nabet
Use ::dbtools::qualifiedNameComponents to retrieve elements of table name (catalog/schema/table) Use ::dbtools::composeTableName to compose the full table name Change-Id: Ia6ebc1a46a4222315e43909356fb8c1d36990419 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171457 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins
2024-08-01tdf#148367: avoid using SQLBulkOperations with SQL_UPDATE_BY_BOOKMARKMike Kaganski
... because that fails with MS Access ODBC 64-bit driver (bug in the driver). And SQLSetPos does the job anyway. Change-Id: I2d356a6a3f6de4d3c2c9a2e49cb3dd8c66af7794 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171270 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2024-08-01Fix OTools::ThrowExceptionMike Kaganski
First, it used 5-character buffer for SQL state, where MS documentation for SQLGetDiagRec specifies, that the buffer is for five-character code plus terminating NULL. The declaration of the function in Windows Kit's sqlucode.h uses decoration '_Out_writes_opt_(6)' for the parameter. Next, SQLGetDiagRec may fail or return SQL_NO_DATA; and then, the data in buffers will be undefiled. Change-Id: Ia36555b4fe4f49c8803a25f8fc1cc1a3b6ac4ddc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171238 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-07-31cid#1555417 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1555423 COPY_INSTEAD_OF_MOVE cid#1555430 COPY_INSTEAD_OF_MOVE cid#1555436 COPY_INSTEAD_OF_MOVE cid#1555440 COPY_INSTEAD_OF_MOVE cid#1555443 COPY_INSTEAD_OF_MOVE cid#1555454 COPY_INSTEAD_OF_MOVE cid#1555459 COPY_INSTEAD_OF_MOVE cid#1555461 COPY_INSTEAD_OF_MOVE cid#1555468 COPY_INSTEAD_OF_MOVE cid#1555477 COPY_INSTEAD_OF_MOVE cid#1555484 COPY_INSTEAD_OF_MOVE cid#1555511 COPY_INSTEAD_OF_MOVE cid#1555515 COPY_INSTEAD_OF_MOVE cid#1555519 COPY_INSTEAD_OF_MOVE cid#1555534 COPY_INSTEAD_OF_MOVE cid#1555537 COPY_INSTEAD_OF_MOVE cid#1555544 COPY_INSTEAD_OF_MOVE cid#1555553 COPY_INSTEAD_OF_MOVE cid#1555559 COPY_INSTEAD_OF_MOVE cid#1555561 COPY_INSTEAD_OF_MOVE cid#1555563 COPY_INSTEAD_OF_MOVE cid#1555564 COPY_INSTEAD_OF_MOVE cid#1555568 COPY_INSTEAD_OF_MOVE cid#1555571 COPY_INSTEAD_OF_MOVE cid#1555580 COPY_INSTEAD_OF_MOVE Change-Id: Ia42a78bffddc80d0e82144f4db51dc6e4d2e9a1d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171237 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-07-29cid#1554812 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1555227 COPY_INSTEAD_OF_MOVE cid#1555329 COPY_INSTEAD_OF_MOVE cid#1555384 COPY_INSTEAD_OF_MOVE cid#1555387 COPY_INSTEAD_OF_MOVE cid#1555399 COPY_INSTEAD_OF_MOVE cid#1555400 COPY_INSTEAD_OF_MOVE cid#1555406 COPY_INSTEAD_OF_MOVE Change-Id: I85dc45e2686c6b3e8b97a23872cb26416edc27c8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171178 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-07-28tdf#68676 Fix textual data length sent to SQLBindColMike Kaganski
The problem was that using Access ODBC drivers, text fields couldn't be set after commit 5ed1415d1cf03a3d671ebd11582dfaa90f1168bd (tdf#68676, tdf#131238: implement and use Unicode ODBC functions on Windows). I had changed the length sent to the function from SQL_NTS into the actual string length; and that caused the problem. Restoring previous behavior. Change-Id: I9ea1f33f30505232a02d42e3182d5449fc8d8f34 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171135 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2024-07-28Fix typoAndrea Gelmini
Change-Id: I7a135a47e5bdbbf37a08f7e876a0ed1d979d4c39 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171131 Tested-by: Jenkins Reviewed-by: Andrea Gelmini <andrea.gelmini@gelma.net>
2024-07-28tdf#162219: pass correct DecimalDigits value to SQLBindParameterMike Kaganski
... when setting DECIMAL / NUMERIC. Passing 'scale' from setObjectWithInfo to SQLBindParameter was wrong anyway: in setObjectWithInfo, the scale is needed if it converts the object 'x' to the requested format before sending to the database. In this case, it mismatched with the actual count of decimals in the string sent to ODBC: it could be "1" or "1.2"; but 'scale' is always equal to the scale of the parameter in the database (4 in the bugdoc), which resulted in the error returned by driver. Note that there is code that truncates excessive decimals - it is in OKeySet::impl_convertValue_throw, implemented for i#106772; it would be best to remove that code, and let the database do its magic: e.g., passing a string like "1.99999" to a DECIMAL(19,4) field in MS SQL Server would round it to 2, while our code truncates it to 1.9999. The ODBC driver can handle more digits itself. But that isn't in the scope here, and may need to tweak other database connectors. Change-Id: Ib50c6d78bfd0cbf5ecd59f46f300107076ec0037 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171127 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-07-27tdf#162227: use strict order of evaluations accessing columnsMike Kaganski
ODBC SQLGetData requires that data must be retrieved in increasing column number order, unless the driver supports SQL_GD_ANY_ORDER extension (see https://learn.microsoft.com/en-us/sql/odbc/reference/syntax/sqlgetdata-function). We can't emplace_back(getString(4), getInt(5), ..., getString(12), getInt(17)), because MSVC would reorder calls into getInt(17) -> getString(12) -> ..., and then MS SQL Server ODBC driver will give error on access of column 12 after column 17. This partially reverts commit e8248b5e4b19df8ba469d1ca3a762960c1a053b5 "cid#1545222 COPY_INSTEAD_OF_MOVE", 2023-12-19. Change-Id: I9bf53086e526c886c4794af51a60e61d4cce89ef Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171097 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2024-07-27tdf#68676, tdf#131238: implement and use Unicode ODBC functions on WindowsMike Kaganski
It also prepares for using it on other platforms as well; the code is generic, and should work with 32-bit SQLWCHAR, too. But I can't test it, so it is not enabled on other platforms for now (see bUseWChar, which was moved to connectivity/source/inc/odbc/OTools.hxx). Change-Id: I29fe117910bbab62aba37e85dd27d65a742d28c7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171081 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-07-26Refactor ODBC functions code for clarityMike Kaganski
Change-Id: I5f3de97fc178b11c82655f65435c637fdff65e99 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171080 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2024-07-26cid#1557746 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1557751 COPY_INSTEAD_OF_MOVE cid#1557771 COPY_INSTEAD_OF_MOVE cid#1557775 COPY_INSTEAD_OF_MOVE cid#1557786 COPY_INSTEAD_OF_MOVE cid#1557787 COPY_INSTEAD_OF_MOVE cid#1557790 COPY_INSTEAD_OF_MOVE cid#1557793 COPY_INSTEAD_OF_MOVE cid#1557794 COPY_INSTEAD_OF_MOVE Change-Id: I1b02b6eca303b1a08975ea8aae7c9dbefbada47f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171061 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-07-21tdf#156530: fix OPreparedStatement::setStringMike Kaganski
The problem was, that the function only considered the target XSQLVAR's sqltype, ignoring sqlsubtype. This led to a situation when assignment to NUMERIC or DECIMAL was treated as assignment to an underlying type, like SQL_LONG, performed without taking scale into account. Use ColumnTypeInfo and its getSdbcType, which provides the correct type, and add missing cases to setString. Fix setObjectWithInfo to make sure that the resulting number is correct. This also fixes export of NUMERIC/DECIMAL in HSQL migration. Previously it miscalculated the position of decimal separator, which accidentally went unnoticed in the existing unit test, because it was compensated by broken handling in Firebird SDBC for the specific numbers in the test. OResultSet::makeNumericString was also fixed; it didn't handle properly the case of zero fractional part: initial number 1200 with scale 2 was converted to a string "12.000" instead of expected "12.00". Change-Id: I5adac59737d21f91c782fe867d4827fb880fd62a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170812 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2024-07-21Unchecked dereference of UNO_QUERY resultMike Kaganski
Change-Id: I85599f303e45ea003b5e214206e4ae3e5216509d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170735 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-07-21Optimize a bitMike Kaganski
Change-Id: I3ad48edd96dd7d390174626cda6841be04b2db07 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170736 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-07-20tdf#162111: promote integer types automaticallyMike Kaganski
The problem was, that importing an HTML table into Firebird, and creating a primary key, called OParameterUpdateHelper::updateInt for each record's primary key field. Since commit c07548447a564b2d142cc439a124b76e6a71dfbd (Related: tdf#108057 Use autoincrement for automatically added primary key, 2024-03-20), the type of autocreated primary key in Firebird databases is SQL_INT64, and before this change, OPreparedStatement::setInt failed when the real field's type wasn't strictly SQL_LONG. This allows Firebird SDBC's integral OPreparedStatement::set* methods to promote to larger numeric types capable to represent the values. Change-Id: I7615c8e9ffa29271d04cf264bb950cb76946dfd6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170787 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2024-07-18make UStringLess single-arg constructor explicitNoel Grandin
Change-Id: I0fb4723fa878f8ebdbe5ac0fe080559ffd4736dd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170679 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins
2024-07-17cid#1555694 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1555695 COPY_INSTEAD_OF_MOVE cid#1555696 COPY_INSTEAD_OF_MOVE cid#1555705 COPY_INSTEAD_OF_MOVE cid#1555711 COPY_INSTEAD_OF_MOVE cid#1555713 COPY_INSTEAD_OF_MOVE cid#1555727 COPY_INSTEAD_OF_MOVE cid#1555742 COPY_INSTEAD_OF_MOVE cid#1555745 COPY_INSTEAD_OF_MOVE cid#1555749 COPY_INSTEAD_OF_MOVE cid#1555760 COPY_INSTEAD_OF_MOVE cid#1555773 COPY_INSTEAD_OF_MOVE cid#1555774 COPY_INSTEAD_OF_MOVE cid#1555778 COPY_INSTEAD_OF_MOVE cid#1555790 COPY_INSTEAD_OF_MOVE cid#1555831 COPY_INSTEAD_OF_MOVE cid#1555847 COPY_INSTEAD_OF_MOVE cid#1555851 COPY_INSTEAD_OF_MOVE cid#1555853 COPY_INSTEAD_OF_MOVE cid#1607763 COPY_INSTEAD_OF_MOVE cid#1607504 COPY_INSTEAD_OF_MOVE Change-Id: I991f15f12e773d325ed9725498df5725b049a858 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170625 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-07-14cid#1555652 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1555655 COPY_INSTEAD_OF_MOVE cid#1555658 COPY_INSTEAD_OF_MOVE cid#1555665 COPY_INSTEAD_OF_MOVE cid#1555667 COPY_INSTEAD_OF_MOVE cid#1555670 COPY_INSTEAD_OF_MOVE cid#1555675 COPY_INSTEAD_OF_MOVE cid#1555684 COPY_INSTEAD_OF_MOVE cid#1555687 COPY_INSTEAD_OF_MOVE cid#1556539 COPY_INSTEAD_OF_MOVE cid#1556542 COPY_INSTEAD_OF_MOVE cid#1557448 COPY_INSTEAD_OF_MOVE cid#1557449 COPY_INSTEAD_OF_MOVE Change-Id: I3567528e559bca0031c4f5b46801e3130073633b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170448 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-07-14cid#1608516 Overflowed constantCaolán McNamara
Change-Id: I0d494f512a45e93933fdb03f64238f12ed2570a2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170440 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
2024-07-09cid#1556502 COPY_INSTEAD_OF_MOVECaolán McNamara
Change-Id: I467e85ad7fd15863a9b52193d8cd815cb66875b1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170193 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-06-28Fix "lets see" -> "let's see"Andrea Gelmini
Change-Id: I7aa939681720bc0dc81c8f114a3608a8cdfb4f60 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169722 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2024-06-19Fix typoAndrea Gelmini
Change-Id: If2eb7ee036a06d23a4b82ab474244efcbcbf2905 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169238 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2024-05-15use more officecfg in OSDBCDriverManagerNoel Grandin
Change-Id: I2b1758572a6436d829d547d60bca5fa2d1a3c98f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167641 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins
2024-05-15WaE: C6011 Dereferencing NULL pointer warningsCaolán McNamara
Change-Id: I613c77b9aa34433fab9cfaee83d7468cbf5971d9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167644 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>