Uploaded image for project: 'MariaDB Connector/ODBC'
  1. MariaDB Connector/ODBC
  2. ODBC-483

ADO Connection is unusable after executing Prepared Statement

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Duplicate
    • 3.2.7
    • 3.2.8
    • General
    • Windows Server 2022 + MariaDB Server 11.4.7

    Description

      ODBC connector 3.2.7 prevents the ADO connection to be reused (may impact older versions of branch 3.2.x also).

      After properly executing a Prepared Statement, the ADODB.Connection is unavailable for further use : any attempt to use the connection for executing any simple query will throw this error :
      0x80004005 A trappable error (E06D7363) occurred in an external object. The script cannot continue running.
      It seems not being properly "freed up".

      With ODBC connector 3.1.22, this Prepared Statement was properly executed, and the ADODB.Connection was still available for further use.

      • Could this be caused by the multiple changes on Prepared Statements introduced in versions 3.2.4 ... 3.2.7 ? That would be a serious regression from the 3.1.22 line.
      • Is this a new bug, or is it the same that this one (solved in 3.2.8) notably https://jira.mariadb.org/browse/ODBC-481 ?

      After installing the fresh 3.2.8 release, everything is back to normal : the ADODB.Connection is available for further use.

      Test Code :

      <%
      'VBSCRIPT / ASP
       
      'Create connection with MariaDb ODBC connector v. 3.2.7
      Dim adoConn : Set adoConn = CreateObject("ADODB.Connection")
      adoConn.Open "Driver={MariaDB ODBC 3.2 Driver}; server=192.168.1.1; database=test; user=test; password=test"
       
      'Create Parameterized query
      Dim oCmd : Set oCmd = CreateObject("ADODB.Command")
      With oCmd
      	.ActiveConnection = adoConn
      	.Prepared = True
      	.CommandType = adCmdText
      	.CommandText = " UPDATE theTable SET theField = ? "
      	.CommandTimeout = 900
      	.Parameters.Append .CreateParameter("@theField", adVarWChar, adParamInput, 256, "TheNewValue")
      End With
       
      'Execute Query :
      '	=> Query is executed.
      '	=> No error is raised at this moment.
      Dim rs : Set rs = oCmd.Execute()
       
      'Release Cmd
      If Not (rs Is Nothing) Then
      	If (rs.State = 1) Then rs.Close  ' adStateOpen = 1
      	Set rs = Nothing
      	rs = Empty
      End If
       
      'Now every attempt to use any simple query with adoConn.Execute(anotherQuery) will throw this error :
      * Category :           Active Server Pages
      * Asp Code :           ASP 0115
      * Err.Number :         0x80004005
      * Err.Description :    A trappable error (E06D7363) occurred in an external object. The script cannot continue running.
      * Line :               0 (This is Always 0, regardless of the location in the source code)
      %>
      

      Attachments

        Issue Links

          Activity

            People

              Lawrin Lawrin Novitsky
              LeJusteWeb Alex F
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.