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

Out of Memory using Connector with ADO

    XMLWordPrintable

    Details

      Description

      I've tried to migrate an C++/ADO (not ADO.NET) project from MySQL to MariaDB. While it was easy to replace the MySQL server, I've found a problem with the MariaDB ODBC connector.

      Access to the MariaDB is done by the OLEDB to ODBC bridge (MSDASQL). The ADO connection string is something like "Provider=MSDASQL;DSN=TestMariaOdbc". While querying tables with simple fields works as expected, I wasn't able to read values from LONGBLOB columns. The table in question has two columns: id (int), data (longblob). Selecting a row by the id with a data-value of about 2000 bytes leads to the following error:

      Error number: 8007000e  Out of Memory
      Code = 8007000e
      Code meaning = Unknown error 0x8007000E
      Source = Microsoft Cursor Engine
      Description = Out of Memory.
      

      While performing the query, the memory consumed by the process rapidly grows to more then 1 GB. The same worked with the latest MySQL ODBC driver (5.3.6). I guess that MariaDB ODBC Connector reports at some point the column size (4GB) instead of the actual data size (2KB) and the ODBC bridge tries to allocate an appropriate buffer...

        Attachments

        1. BlobTest.zip
          5 kB
        2. maodbc.dll
          1.43 MB
        3. MAODBC.LOG
          12 kB

          Activity

            People

            Assignee:
            Lawrin Lawrin Novitsky
            Reporter:
            Stier Markus
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: