Database Exchange > Known Issues

Known Issues

Database Exchange control is developed based ADO (ActiveX Data Objects) technology. There are some known issues with Database Exchange control when it is used with some data sources.

Handle Leak Occurs When a dBase File Is Used as Data Source

ADO has a problem releasing Windows resources (Handles) if used with the ODBC driver for dBase. This problem occurs when you frequently open and close the page upon which the Database Exchange instance is running. When the page containing the Database Exchange control is closed, resources used by the control should be released on termination. However, on this occasion, the handles are not released. It is believed that this problem is caused by connection object of ADO.

If you start the Windows Task Manager and select the "Handle Count" column on the "Process" tab, you’ll notice that the handle count increases under the Citect32 process, and that there is some memory leakage because each handle consumes memory as well. The same problem occurs if Jet OLE DB Provider is used to connect dBase files.

Resolution

If you must use Database Exchange with DBF files, do not close the Database Exchange page. Instead, hide it when you navigate to other pages. When you revisit the page give the page focus.

Memory Leak Occurs When You Query an Open Excel Worksheet

When you retrieve an ADO Recordset from an Excel worksheet that is open in Excel, a memory leak occurs in the Excel process. Repeated queries sometimes cause Excel to run out of memory and raise an error, or cause Excel to stop responding.

Resolution

The memory used by the ADO queries cannot be reclaimed by closing and releasing the ADO objects. The only way to release the memory is to exit Excel.

If possible, query the Excel worksheet only while the file is not open in Excel.

If the worksheet must remain open (for example, to allow dynamic recalculation of worksheet values on an ongoing basis) use one of the following methods as a workaround:

  1. Use the SELECT INTO syntax of the Jet OLE DB Provider to export the Excel data to a new worksheet. For details about using the SELECT INTO syntax to export data, refer to the article number 295646 HOWTO: Transfer Data from ADO Data Source to Excel with ADO in the Microsoft Knowledge Base.
  2. Use the SaveCopyAs method of the Workbook object in the Excel object model to programmatically save the open Excel file under a new name. You can then query the copy of the file that you previously saved under a new name from the ADO application.