FIX: Oracle ODBC Driver Creates Temporary Files on Root Drive (184775)



The information in this article applies to:

  • Microsoft ODBC Driver for Oracle (Build 2.06325) 1.0
  • Microsoft ODBC for Oracle version 2.0 Build 2.73.7269
  • Microsoft ODBC for Oracle version 2.0 Build 2.73.7283.01
  • Microsoft ODBC for Oracle version 2.0 Build 2.73.7283.03
  • Microsoft Data Access Components 1.5

This article was previously published under Q184775

SYMPTOMS

When using the Microsoft Oracle ODBC driver (Msorcl32.dll) provided with the Microsoft Data Access Components (MDAC) 1.5x and more than 64K of data is returned to the client computer in a scrollable or keyset driven recordset, temporary files may be created in the root of the primary drive.

This causes problems on secured computers where the users are not permitted to write to the root of the primary drive.

RESOLUTION

There are currently no configuration options available to change the location of these temporary files. However, below are some workarounds that can help alleviate this problem.
  • Change the application to use the ODBC Cursor Library. This also creates temporary files, but they will be located in the default working directory of the application.
  • Use a forward-only cursor that will not buffer records.
  • Return small recordsets that will not exceed the driver's 64K buffer.
  • Grant sufficient permissions to the root of the primary drive to allow the creation of temporary files.
The latest version of the Microsoft Oracle ODBC driver fixes this problem by creating the temporary files in the subdirectory of the application.

STATUS

This bug has been fixed in the 2.573.2927 version of the Microsoft Oracle ODBC driver available in Visual Studio 6.0 and Microsoft Data Access Components version 2.0 and later. The MDAC files can be downloaded from the following Web site:

MORE INFORMATION

When Microsoft's Oracle ODBC driver exceeds its internal storage buffer size of 64K, a temporary file is created in the root of the primary drive to hold the cached records. If the user does not have sufficient permissions to create files in the root of the primary drive, a General Error is returned to the client.

These file names typically begin with the letter "t" followed by a number and another letter, such as "t6a", "t5b.3" and "t4i.2".

The following error information may be returned to the client during a Fetch operation:
SqlState S1000, ErrorMsg = "[Microsoft][ODBC driver for Oracle] General error"

Modification Type:MinorLast Reviewed:3/14/2005
Keywords:kbBug kbDriver kbfix kbODBC250fix kbOracle KB184775