[Libreoffice-bugs] [Bug 121424] New: Error Access2Base setValue with Firebird

bugzilla-daemon at bugs.documentfoundation.org bugzilla-daemon at bugs.documentfoundation.org
Wed Nov 14 17:11:07 UTC 2018


https://bugs.documentfoundation.org/show_bug.cgi?id=121424

            Bug ID: 121424
           Summary: Error Access2Base setValue with Firebird
           Product: LibreOffice
           Version: 6.1.1.1 rc
          Hardware: x86-64 (AMD64)
                OS: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: medium
         Component: BASIC
          Assignee: libreoffice-bugs at lists.freedesktop.org
          Reporter: tony.sultana at pm.me

Description:
I originally posted this to
https://forum.openoffice.org/en/forum/viewtopic.php?f=47&t=95590

Using the OpenRecordset to AddNew a character type field (char or varchar) will
produce an error with Firebird. This has been tested on Debian Linux 4.9 with
LO 6.1.3 and Win10 with LO 6.1.1 with the same results. Attached is a working
HSQLDB and not working Firebird example with the same code.

Steps to Reproduce:
For the Firebird database the following code errors with the .Fields().Value
line when it tries to setValue().
oRec = CurrentDb().OpenRecordset("char_pkey")
oRec.AddNew
oRec.Fields("test").Value = "abcd"
oRec.Update
oRec.mClose

I debugged the Access2Base code stepping into the following modules. Line 704
in _PropertySet() fails because _Precision is set to 0 so any length character
field fails on error length. That is not the error reported on line 776 because
the problem occurs earlier.

_Precision is a private variable in the module but is not set to a value
anywhere and its only use is on line 704 below with the 0 initialization value.
When I run the HSQLDB.odb example the _Precision variable has a value of
2147483647 (0x7FFFFFFF) so there may be a difference with initialization?

REM Access2Base:Field Module
17 Private _Precision As Long

127 Property Let Value(ByVal pvValue As Variant)
128 Call _PropertySet("Value", pvValue)
129 End Property ' Value (set)

623 Private Function _PropertySet(ByVal psProperty As String, ByVal pvValue As
Variant) As Boolean

655 Case UCase("Value")

664 Select Case Column.Type

702 Case .CHAR, .VARCHAR, .LONGVARCHAR, .CLOB
703 If Not Utils._CheckArgument(pvValue, iArgNr, vbString, , False) Then Goto
Trace_Error_Value
704* If Len(pvValue) > _Precision Then Goto Trace_Error_Length
705 Column.updateString(pvValue) ' vbString

Watch Variables
_Precision = 0
pvValue = "abcd"
cstThisSub = "Field.setValue"
iArgNr = 1
psProperty = "Value"


Actual Results:
Error #12 variable not defined but the error actually occurs at line 704 in
Access2Base Field module.

Expected Results:
The string length is acceptable and should be written to the table without
error.


Reproducible: Always


User Profile Reset: No


OpenGL enabled: Yes

Additional Info:
Successfully write to table the same as the RunSQL below.

The CurrentDB().RunSQL() works for both HSQLDB and Firebird
CurrentDb().RunSQL("insert into ""char_pkey"" Values ( 'abcd' )")

Version: 6.1.3.2
Build ID: 1:6.1.3-1
CPU threads: 8; OS: Linux 4.9; UI render: default; VCL: gtk3; 
Locale: en-US (en_US.UTF-8); Calc: group threaded

Version: 6.1.1.2 (x64)
Build ID: 5d19a1bfa650b796764388cd8b33a5af1f5baa1b
CPU threads: 4; OS: Windows 10.0; UI render: default; 
Locale: en-US (en_US); Calc: group threaded

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libreoffice-bugs/attachments/20181114/34c3f913/attachment-0001.html>


More information about the Libreoffice-bugs mailing list