Oracle Objects for OLE (OO4O) Release Notes


This product is updated frequently. You can make sure you have the latest version of OO4O by checking the following sites:
/software/tech/windows/ole/index.html

Release 8.1.7.3.15

Jan 2001

Copyright (C) Oracle Corporation 2001


This file contains important information specific to Oracle Objects for OLE release 3.15. The following topics are covered:

Install Notes: Oracle Objects for OLE, being a COM component, is NOT a MULTIPLE ORACLE HOME product. It should be installed only once, in ANY Oracle Home. Installing OO4O into a second home will render the previous version obsolete.

Required Support Files 8.1.7 is a required dependency of OO4O 8.1.7.3.15.
You will need a sufficiently high version of mfc42.dll(v. 6.00.x) to register oip8.dll

Microsoft Visual Basic 6.0 needs to be installed on your machine before you can install the Code Wizard component of Oracle Objects for OLE. If VB 6 was not installed prior to the OO4O installation, either reinstall OO4O or simply run the regsvr32.exe utility from the command line as follows:
- regsvr32.exe oo4ocodewiz.dll
- regsvr32.exe odbtreeview.ocx
- regsvr32.exe oo4oaddin.dll
These files would have been installed in ORACLE_HOME\bin dir.

System Requirements

  1. Operating System: Windows NT 4.0, Windows 2000 or Windows 98.
  2. Minimum processor: Pentium 166.
  3. 64 Mb memory (128 Mb recommended).
  4. 10 Mb free disk storage for the OO4O program files.
  5. Enough additional disk storage to create a local cache the size of your largest dynaset. Oracle recommends approximately 10 Mb of free disk space in your swap partition.
  6. 32-bit application capable of OLE scripting (Visual Basic 4/5/6, Excel 5/7, etc.) or supported C++ compiler (Microsoft Visual C++ 6.x).
  7. Access to an Oracle 8, 8i or 9i database, through a local connection or a network using the Net Client.

General Information and Dependencies

This release is a 32-bit version of Oracle Objects for OLE and will work on Windows NT, Windows 2000 and Windows 98.

Class libraries are provided for Microsoft Visual C++ versions 6.x. Refer to the "Oracle Class Libraries" section in this document for information on the C++ class libraries provided in this release.

What is included in this release:

  • 32-bit In Process OLE Automation Server for Windows NT, Windows 2000, Windows 95 and Windows 98.
  • 32-bit Class Libraries for Microsoft Visual C++ 6.x.
  • 32-bit Oracle Data Control (.OCX) for Windows NT, Windows 2000, Windows 95 and Windows 98.

New Features

  • Customizable XML generation from an OraDynaset object using the GetXML or GetXMLToFile methods. See below for additional information.
  • Support for Temporary LOBs. These are useful when calling stored procedures or functions that have arguments of type LOB. For example code, please refer to the CreateTemporaryBlob method on the OraDatabase object in the Oracle Objects for OLE help file.
  • OO4O now ships with Oracle Objects for OLE Code Wizard. The Wizard generates OO4O code that executes Oracle PL/SQL and Java stored procedures. Please read Oracle Objects for OLE Code Wizard Help for more information.
  • Support for Detection of lost connections. Connection pooling also uses this feature internally to detect dropped connections.
  • Support for Application failover notifications.
  • Support for Asynchronous Processing in Oracle InProcServer and CPP class library.

For more information on these new features and objects, see the online help and example files. Care has been taken so that existing features of the previous version are supported.

 

Sample Files

Samples have been added to demonstrate usage of the C++ class libraries, thread safety features and for using OO4O within the Internet Information Server environment. The C++ examples can be found in \ORACLE_HOME\OO4O\CPP\WORKBOOK\ and the IIS samples can be found in the \ORACLE_HOME\OO4O\IIS\ directory. Visual basic samples can be found in the \ORACLE_HOME\OO4O\VB directory.
 

Long/Long Raw Migration to BLOB, CLOB or BFILE Recommended

Oracle8i introduces the following new types -- BLOB, CLOB, and BFILE. The design of these types allow Oracle Objects for OLE to access them much faster than Long or Long Raw. For this reason you are urged to convert pre-existing Long Raw based applications to BLOB, CLOB and BFILE. If possible, new applications should use BLOB, CLOB and BFILEs rather than Long Raw.

Such migration should be relatively simple with little code changes required. This is because the methods previously used for Long and Long Raw manipulation have been enhanced to allow them to be used against BLOB, CLOB, and BFILE as well. These methods are AppendChunk, AppendChunkByte,  GetChunk, GetChunkByte, GetChunkByteEx, and ReadChunk. The primary code changes will involve the requirement that NULL BLOB and CLOB be updated with "Empty" before being used. Note: For maximum flexibility, new applications should use the normal BLOB/CLOB/BFILE Read and Write methods instead of these Chunk methods.
 

Getting Started

Please read the "Getting Started With the OO4O Automation Server" section provided in the online help and try out the sample programs installed with the product. Also, many methods in the online help include links to example code that you can cut and paste into your VB application and step through.

From Visual Basic 6, you can load the oo4o Type Library by going to the menu and choosing Project-->References. The name of the library is OIP8.TLB. After doing this you can browse the oo4o objects by going to the menu and choosing View-->Object Browser. The Data Control can be added by going to the menu and choosing Project-->Components. The name of the data control is ORADC.OCX.

ASP users can try out the sample located in the ORACLE_HOME\oo4o\Iis\Samples\ASP\ConnPool directory.
 

Building the C++ Sample Applications

Make sure that ORACLM32.LIB is listed on library list (under the "Link" tab). Make sure that ORACL.H and ORACLM32.LIB are on the path. Change the connect string and user name given in the sample if neccesary.

Installation Layout

As part of a Typical Installation the following directories will be created and will contain the corresponding files:

  • \ORACLE_HOME\MSHELP - Oracle Objects online help
  • \ORACLE_HOME\OO4O - SQL scripts and constants file
  • \ORACLE_HOME\OO4O\CPP - Libraries, include files, DLL's, and source for the class library
  • \ORACLE_HOME\OO4O\CPP\MFC - Libraries, include files and source for the MFC Bound Class Library
  • \ORACLE_HOME\OO4O\EXCEL\SAMPLES - Excel Samples
  • \ORACLE_HOME\OO4O\VB\SAMPLES - Visual Basic Samples
  • \ORACLE_HOME\OO4O\VB\SAMPLES\QT - Visual Basic Quick Tour guide
  • \ORACLE_HOME\OO4O\IIS\SAMPLES - IIS Samples

Redistributable Files

If you cannot guarantee that your end user will have this version of Oracle Objects for OLE installed on their machine, you will need to redistribute certain files along with your application.

Please see the online help (Redistributable Files) for more information about which files are involved.

When not installed by the Oracle installer, the Oracle Data Control (ORADC.OCX) will have to be registered for it to function. The OCX may be registered by running regsvr32.exe oradc.ocx from a command prompt.

Known Issues

Oracle In-Process Server

Database Events

Subscriptions property of OraDatabase has been documented incorrectly as OraSubscriptions in the Database Events section of the help file.
e.g Please use
Set gOraSubscriptions = gOraDatabase.Subscriptions
instead of
Set gOraSubscriptions = gOraDatabase.OraSubscriptions

XML Support

Data from LONG or LONG RAW fields are not rendered.
Data from Object or Collection attributes of type RAW are not rendered.
Table names or column names that would be illegal as XML tag names or attribute names will be mapped by oo4o to a legal equivalent.This feature is not available in the 8.1.7 client. Therefore some tables (such as one named '<X>') would result in an invalid XML document with the 8.1.7 client. To avoid this limitation, use the Oracle9i client.

Automation Error when calling OraParameters.Remove for Parameters of Extended Type

Calling OraParameters.Remove on an OraParameter of type OraObject, OraRef, OraCollection, OraBlob, OraClob, or OraBfile can result in an Automation error. A workaround is to not call Remove.

Access Violation When Freeing a Temporary Lob

This bug occurs when a Temporary Lob is freed either by going out of scope or when it is set to "nothing". The workaround is to make sure that the OraDatabase parent of the Lob is freed AFTER the Lob.

Set OraClob = nothing
Set OraDatabase = nothing

ORA-4108 When Updating Dynasets Based on Index Organized Tables

OO4O does not currently support updating Index Organized Tables using OraDynaset. Updates may be done with OraDatabase.ExecuteSQL method.

Using CLOB With Varying Width Character Sets -- Documentation Corrections

Please note that the documentation for OraClob has been corrected in recent versions. If you are using CLOBs with varying width character sets, please make sure you have the latest version of the documentation.

OraClob.Write

When OraLob.Pollingamount = 0 but piecetype on OraLob.Write is not ORALOB_ONE_PIECE, polling will still occur. Polling will complete when ORALOB_LAST_PIECE is sent as an argument to a call toWrite. This is especially useful when calling OraClob.Write in a varying width character set when counting the total amount of characters ahead of time may be costly.
 

OraParameter Values Return Null Variant Instead of Empty String

As a part of a recent bug fix, OraParameter.Value will now return a variant of type Null to correspond to database Null values where as in some previous cases it had returned an empty string (which was a bug). Now, if you set a string variable equal to OraParameter.Value and Null is returned, Visual Basic will give an error because you cannot set a string variable to Null. Use a variant instead.

Methods Beginning with Prefix "Db" Removed from Documentation

Methods that begin with the prefix "Db" have been removed from the documentation (such as OraSession.DbOpenDatabase)
but will continue to be supported for backward compatibility. The same method without the "Db" prefix is exactly the same.

MonitorStart method of OraAQ object is not supported on older version of Win95 without DCOM.

Please install DCOM and newer versions of OLE32.DLL and MFC42.dll on your Win95 machine. Then re-register oip8.dll and oradc.ocx in ORACLE_HOME\bin directory using regsvr32.exe.

ORA-12704 with  NCHAR or NVARCHAR2  Data Types

NCHAR and NVARCHAR2 datatypes are not supported in this release. The error "character set mismatch" is likely if operations are attempted on these types.

Type Library changes

An incompatibility with the type library was introduced in  OO4O versions 2.3.x (up to and including 2.3.4) and  OO4O 8.1.3.3.0. This has been corrected in the current release. Applications using early binding with OO4O versions 2.3.x (up to and including 2.3.4 and 8.1.3.3) need to be re-compiled.

LOB columns with Dynaset with ORADYN_ORAMODE

Adding  LOB columns in a dynaset created with ORADYN_ORAMODE option does not work with this release.

Lob, Objects, REF, Collections Dirty Writes

With all other column types, when you attempt to do an update, and the value of the field has been changed by another user, you receive an OIP-4119 "Data Has been Changed" error. This error will not occur with BLOB and CLOB, Object ,REF and collection types and the data will be updated regardless.

Free Threading in Windows 95

To use oo4o in a free threaded environment in Windows 95 the following string value would be added to the InProcServer32 key: ThreadingModel = "Both". This is added by default in the NT environment.

ORADB_NOWAIT Option of OpenDatabase

The effect of this option differs significantly from it's behavior in version 2.3. It now only applies to OraDynaset. It no longer has any effect on OraSqlStmt objects or ExecuteSQL calls. Also, it now only gives an error in the case of a locked row (in 2.3 it gave an error when there was *any* database resource contention no matter how brief, which was generally disruptive)

ChunkSize for for LONG LONG RAW columns

The ChunkSize can be less than or equal to 65280 bytes and not 64K as mentioned in the online documentation. This is true for all the chunking methods GetChunk, GetChunkByte, GetChunkByte , GetChunkByteEx and ReadChunk.

Behavior of MoveTo, MoveRel, Movexxxxn

MoveTo:

The behavior of this method is correct but the documentation does not make clear how this method behaves: Row numbers are static between refreshes. They are very much like a row id. Row numbers are not dynamically reassigned after deletions. Therefore if you do a MoveFirst followed by a MoveTo 4, you will end up at the same row, whether or not rows 2 and 3 have been deleted. So, you should not do arithmetic based on values of row numbers unless you can guarantee no row has been deleted (such as immediately after a refresh). That is, you can not be sure how far apart row 1 and row 4 are in terms of valid (non-deleted) rows. The row number simply serves as a label or id and it's actual value is meaningless in terms of relative position whenever rows have been deleted.

MoveRel, Movexxxxn

These methods do not work correctly when rows have been deleted. They incorrectly add the offset you provide to the value of the row number and move there (or to the next available valid row in the case the resulting row has been deleted). Unless you can guarantee that no row has been deleted (such as immediately after a refresh) these methods should probably not be used. Instead, use a loop of MoveNext or MovePrev to achieve the same results.

Find Methods

  • The like operator will not work in multi-byte languages.
  • Table or synonym 'DUAL' is required in user's schema.
  • Date values are retrieved and compared in VB format which is actually the format specified in the Control Panel. Therefore date comparisons will fail if any other format such as the default Oracle format 'DD-MON-YYYY' is used.
  • SQL function TO_CHAR(date, fmt) cannot be used because the first argument must be a date in native Oracle format and OO4O only handles 'string dates'.
  • SQL function TO_DATE will convert a string to a date, but the OIP will convert it back to a string in VB format as described above and the comparison may still fail.
  • FindPrevious and FindLast in a NO_CACHE dynaset will not work; NoMatch will be set TRUE.

Oracle Data Control


Custom controls support

Oracle Data Control is a fully functional Visual Basic Custom Control (OCX). It is compatible with any data-aware bound control (OCX) that uses the Microsoft VB data binding specifications.

The following data aware controls have been tested with the Oracle Data Control and here are some comments. Other controls not listed here will work with the Oracle Data Control as long as they follow the Microsoft VB data binding specifications.

Microsoft Visual Basic Standard Controls

Tested Versions: VB 4.0, 5.0 and 6.0

Edit control

No known issues.

Static text control

No known issues.

Picture box and Image control

Long Raw data displayed through the Oracle Data Control is read only. To do adds or updates to Long Raw requires use of code. See the AppendChunk method example code in the online help for more information. We recommend you migrate the Long Raw over to BLOB column type which is writeable by the Data Control and can be significantly faster.

Microsoft OLE Container Control

Write operations which occur after activation of the OLE object do not work properly in VB 4.0. The object written to the database is corrupt. This works correctly  in VB 5.0 and 6.0.

Microsoft Data Bound Listbox control

Does not respond to ORADC.UpdateRecord. Instead use MoveNext or MovePrevious to force the update.

Microsoft Data Bound Combobox control

Does not respond to ORADC.UpdateRecord. Instead use MoveNext or MovePrevious to force the update.

Microsoft Data Bound Grid control

Whenever the Data Control’s underlying Recordset is moved to EOF or BOF, the grid will not paint properly if the user attempts to use it while in that state. So, each time you are finished using ORADC1.Recordset in your code it is advisable to check for BOF and EOF, and if it true, do a MoveFirst followed by a MoveLast in the case of EOF or MoveLast followed by MoveFirst in the case of BOF. This will cause the rows to be repainted.

The Scroll (DBGRID.Scroll) method of the grid will not work.

The Refresh (DBGRID.Refresh) method of the grid will not work. Use ORADC.Recordset.Refresh instead.

Deleting a row using the delete key on the keyboard causes the current row to jump ahead 2 rows rather than one. Workaround is to use a button associated with the code ORADC.Recordset.Delete.

MSGRID bookmarks (DBGRID.Bookmark) and Oracle Objects bookmarks (ORADC.Recordset.Bookmark) are not compatible. Setting the ORADC.Recordset.Bookmark property to a bookmark obtained from DBGRID.Bookmark will result in an OIP-4121. Similarly, populating the grid’s SelBookmarks collection with bookmarks obtained from ORADC.Recordset.Bookmarks will result in some rows not properly selected.

To workaround the problem, do not share bookmarks between Oracle Objects and the MSGrid.

That is, only set DBGrid1.Bookmark property to a bookmark that you obtained from DBGrid1.Bookmark. Only set ORADC.Recordset.Bookmark to a bookmark that you obtained from ORADC.Recordset.Bookmark.

For example, use:

DBGrid1.Bookmark = DBGRID.SelBookmarks(0)

instead of

ORADC.Recordset.Bookmark = DBGRID.SelBookmarks(0)

MSGRID SelBookmarks property doesn't work with ORADC.Recordset.Bookmark

Setting the ORADC.Recordset.Bookmark property to a bookmark obtained from DBGRID.Bookmark will result in an OIP-4121. Similarly, populating the grid's SelBookmarks collection with bookmarks obtained from ORADC.Recordset.Bookmarks will result in some rows not properly selected.

To workaround the problem, do not share bookmarks between Oracle Objects and the MSGrid.

For example, use:

DBGrid1.Bookmark = DBGRID.SelBookmarks(0) instead of ORADC.Recordset.Bookmark = DBGRID.SelBookmarks(0)

Sheridan Data Widgets

Tested Version: 3.12 Build 15

Sheridan Data Bound Combo control

Obtain 3.12 Build 15 or later from Sheridan (http://www.shersoft.com/) to fix a bug that causes OIP-16389 errors
to occur or NULLs being inserted on every update with the combo and dropdown. There are no other known issues.

Sheridan Data Bound Dropdown control

Same as Combo box above.

Sheridan Data Bound Grid control

Whenever the Data Control’s underlying Recordset is moved to EOF or BOF, the grid will not paint properly if the user attempts to use it while in that state. So, each time you are finished using ORADC1.Recordset in your code it is advisable to check for EOF or BOF, and if it is true, do a MoveLast in the case of EOF, and do a MoveLast followed by a MoveFirst in the case of BOF.

Doing a delete when no rows are visible on grid (this can happen when you delete every row that is visible on the grid when there are more rows than one page worth), followed by doing a delete on the empty looking grid will cause repainting problems. This should only be an issue if you have a loop of ORADC.Recordset.Delete since the user will not normally delete a row when one is not visible. One possible workaround is to add a MovePrevious followed by a MoveNext to each delete in the loop. This will cause Sheridan to keep at least one row visible on the grid throughout the deletes and will avoid the problem. Another workaround is to refresh after doing the deletes.

Performing AddNew on underlying dynaset (ORADC.Recordset.AddNew) when dynaset has not been fully fetched yet will result in OIP-4118 error. Workaround is do a MoveLast to force a full fetch, then call AddNew.

Related to the above problem, there may be other cases where Sheridan does not move to the last row when it is supposed to when all the rows have not yet been fetched. For example, this may occur when you call MoveLast on the grid itself (Grid.MoveLast) prior to all rows being fetched. To workaround any problem like that, call MoveLast on the underlying dynaset instead

(ORADC.Recordset.MoveLast).

Related to above problem, MoveRecords method of grid will move to the last row of all rows fetched so far if not all rows have been fetched yet.

The Refresh method of the grid (SSDBGRID1.Refresh) will do nothing. Use ORADC.Recordset.Refresh instead.

Sheridan Enhanced Data Control

Find functionality only works for "equals" case and only when no rows have been deleted.

FarPoint Data Bound Grid Control

Tested Version: 2.5.020

Access Violations will occur when bound to Long Raw when size of long raw minus 118 bytes is multiple of 32k. Farpoint has confirmed this bug and it should be fixed in a maintenance release of Spread. Please contact Farpoint for more information about how to obtain a fix.

After deleting the last row in the grid, Farpoint will not reposition on the new last row. Continuing to delete will succeed in deleting the new last row, but the deleted rows will not disappear from the grid. To workaround this add a MovePrevious and MoveNext to each delete in your code or call refresh when done deleting.
 

Oracle Class Libraries


Access Violation on Program Termination, after OShutdown()

If OShutdown() is called and then a program exits, any OO4O objects that are on the stack will be deleted by the compiler generated cleanup code. When OO4O objects are deleted, Release() is called on the associated OIP COM object. If COM is already shutdown, this can result in an access violation. So in these cases, the user should either call Close() on each object on the stack prior to calling OShutdown() (or Clear() in the case of an OValue that contains an object), or since the program is terminating anyway, neglect calling OShutdown() at all. Note that it is not required to call Close() on OO4O objects, this is taken care of automatically when they are deleted. In this special case however, it is neccesary to make sure the Close() happens before the OShutdown.

Example:

main()
{
OSession sess;
ODatabase db;
OValue val;
OStartup();
db.Open(sess, "exampledb", "scott", "tiger", 0);
sess.Close();
db.Close();
oval.Clear(); //only needed if OValue can contain an object
OShutdown();
}
 
 

Additional support for RAW datatype

Additional methods were added to the C++ library to enable support for the RAW datatype:

ODynaset:
oresult GetFieldValue(int index, char *val, unsigned short maxlen, unsigned short *outlen) const;
oresult GetFieldValue(const char *fieldname, char *val, unsigned short maxlen, unsigned short *outlen) const;
oresult SetFieldValue(int index, const char *val, int len);
oresult SetFieldValue(const char *fieldname, const char *val, int len);

OField:
oresult GetValue(const char **val, int *len) const;
oresult SetValue(const char *val, int len);

OParamArray:
oresult GetValue(const char **val, int *len, int index) const;
oresult SetValue(const char *val, int len, int index);

OParameter:
oresult GetValue(const char **val, int *len) const;
oresult SetValue(const char *val, int len);

OParameterCollection:
OParameter Add(const char *name, const char *value, int len, int iotype, int serverType);

Example code is provided in the \ORACLE_HOME\OO4O\CPP\WORKBOOK\RAW directory.
 

Error when attempting to link with ORACLM32.LIB

This release of the C++ Class Library ships with an ORACLM32.LIB that will not be recognized by linkers earlier than VC++ 6.0.

OStartup with ApartmentThreaded (default) option

When calling OStartup from C++ Class library without the OSTARTUP_MULTITHREADED option,
connections with same username, password, and connect alias are shared. This is to insure backward compatibility with version 2.3 and before.

Error: CoInitializeEx() not found in OLE32.DLL

You will receive an error similar to this one if you use the Class Libraries with an older version of Win95, and you call OStartup() with the MultiThreading option. To correct this you need to obtain NT 4.0, or the DCOM patch for Windows 95.
 

Using the data control with VC++

An error condition will cause an exception in MFC42.DLL. For example while running a VC++ application with the data control an invalid data input which should otherwise generate an OIP error will cause an unhandled exception in MFC42.DLL.

IIS/ASP

IIS 4.0

In the IIS 4.0 you need to use the <OBJECT> tag for instantiating OO4O.

<OBJECT RUNAT=Server SCOPE=Application ID=OraSession PROGID="OracleInProcServer.XOraSession"></OBJECT>

You can then access the OraSession object by simply referring to it without using the Application("OraSession") syntax. The SCOPE=Application takes care of it.

The following is a sample global.asa file.

<OBJECT RUNAT=Server SCOPE=Application ID=OraSession PROGID="OracleInProcServer.XOraSession"></OBJECT>
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnStart
End Sub

Sub Application_OnEnd
End Sub

</SCRIPT>

Reading Long/Long raw columns in ASP

You have to use OraField object's method GetChunkByteEx to read Long/Long raw columns from ASP. See the online help for more information. Oracle recommends that you use LOBs instead.
 

Summary of problems fixed

1997123    MEMORY LEAK WHEN GET LONGRAW DATA WITH FOR LOOP USING OO4O AND VC++.
2003795    OO4O RUNNING ASP WITH IIS EXPERIENCES SLOW PERFORMANCE AND CPU USAGE ON Win2000
2103597    NLS: OO4O CODE WIZARD ADDIN DOES NOT PROPERLY DISPLAY JAPANESE PACKAGE NAME
1990136    -2147417848 METHOD 'CREATEPLSQLDYNASET' OF OBJECT '_IORADATABASE' FAILED
1973130    ACCESS VIO / OBJECT DISCONNECTED AFTER IDLING AFTER FREEING OBJECT / REF / COLL
1961911    OIP-16389 OCCURS WITH STRING THAT IS SMALLER THAN 128
2010082    MEMORY LEAK WHEN GETXML OR GETXMLTOFILE CALLED
2010122    MEMORY LEAK WHEN ORACOLLECTION IS CREATED
1969088    ORAFIELD.XMLTAGNAME = "" (NULL) DOES NOT CAUSE TAG TO BE OMITTED
1969094    ORAFIELD.XMLTAGNAME IGNORED WHEN XMLUPPERCASE IS TRUE
1969099    BAD XML STRINGS PASSED TO ROWSET, ROW, ROWID OR COLLID NOT CONVERTED

Problems Fixed in release 9.0.1.4.2

1909345    ERRORNUMBER RETURNS 0 WHEN GETDATABASEFROMPOOL FAILED TO OPEN DB
1913543    CANNOT GET ERROR INFO USING CONNECTION POOLING
1892152    COPYTOCLIPBOARD FAILS WHEN VARCHAR2 COLUMN CONTAINS ALL SPACES
1887601    OIP-4109 WHEN RUNNING MULTIPLE OO4O APPLICATIONS ON THE SAME MACHINE
1189812    ORADB_DEFERRED AND ORADB_NONBLK HAVE THE SAME VALUE
816219      ORADB_NO_REFETCH ALTERED TO ORADB_DBDEFAULT
805407      MEMORY LEAK WHEN USING ORIGINALNAME METHOD
671622      OO4O AND EXCEL97 CAUSES AN APPLICATION ERROR WHEN RETRIEVING DATE LIKE 12120098

Problems Fixed in release 3.14

1834597    MEMORY LEAK WITH TEMPORARY LOB OR WHEN USING A LOB AS A PARAMETER
1783743    CPP: ODATABASE.DESCRIBE() ACCESS VIO INSTEAD OF RETURNING ORA-4043 ERROR
1766430    GETNAME AND GETSTATUS RETURN BAD OR INVALID POINTERS
1878734    MEMORY LEAK WHEN EXECUTING BAD SQL WITH CREATEPLSQLDYNASET
1811093    MEMORY LEAK IF YOU REUSE BUFFER FOR BLOB WRITE
912623      MULTIBYTE ONLY: OIP-4121 WHEN USE BOOKMARK CREATED FOR HIGH ROW NUMBER
<none>      CPP: FIX FOR TEMP BLOB NOT BEING ABLE TO BE CREATED
<none>      NO SUPPORT AGAINST UTF8 DATABASES

Problems Fixed in release 3.13

<none>      ORADC:  DATACONTROL DOES NOT RESPOND TO DOUBLE CLICKS
1410726    OO4O C++ LEAKS MEMORY WHEN REFRESHING DYNASET WITH NEW SQLSTATMENT
1531083    SECOND OPEN USING AN OPS$ LOGIN CRASHES IN OIP8.DLL
1729234    OO4O RETURNS THE WRONG LONG DATA OVER 64K
1539421    CANNOT CATCH ORA-1555 ERROR USING "ON ERROR GOTO" STATEMENT
1493342    WARNING ORA-28011 TREATED AS ERROR; WARNING ORA-28002 IN LASTSERVERERR
1471037    ORASESSION.LASTSEVERERR RETURNS ORA-28001 INSTEAD OF ORA-28007 ON CHANGEPASSWORD
1388339    ORA-6502 RETURNED EXECUTING PL/SQL BLOCK (MINIMUMSIZE PROPERTY IGNORED FOR BOTH)

Problems Fixed in release 3.12

1403496 - METHOD GETROWS DETECTS ONLY HALF OF MULTI-BYTE DATA
1509544 - ORADYNASET NOT UPDATABLE WHEN THERE IS AN EXTRA BLANK

Problems Fixed in release 3.11

1478272 - ORA-24347 WARNING TREATED AS ERROR
1418974 - GETROWS CRASHES WHEN DATA INCLUDES EMPTY STRING
1415566 - DATACONTROLS THAT ARE SHARING CONNECTIONS ROLLBACK WHEN CLOSED
1411252 - CPP: APARTMENT THREADED APPL NOT SHARING CONNECTIONS AS IN 2.3
1380950 - ORAPARAMETER CAUSES MEMORY LEAK
1370046 - LASTSERVERERR CONTAINS 1403 AFTER ORADYNASET.ADDNEW / UPDATE
1364379 - DYNASET NOT UPDATABLE WHEN TABLE NAME CONTAINS "FROM"
1364313 - DYNASET UPDATE FAILS WHEN TABLE NAME ENCLOSED IN QUOTES
1353095 - MULTIBYTE - ORACLOB.READ  TRUNCATES THE CLOB DATA
1344141 - MULTIBYTE - RUNTIME ERROR WITH CLOB.COPYTOFILE
1344085 - MULTIBYTE - TRUNCATED DATA WITH CLOB.COPYTOFILE
1340481 - CAN NOT INPUT THE NULL VALUE TO THE ORACLE DB IN USE OF ORAPARAMARRAY.
1314101 - MEMORY LEAK IN ORADYNASET.EDIT METHOD
1017692 - TRIM METHOD ON VARRAY TRIMS ONE  LESS THEN REQUESTED
961176 -  CREATEAQ METHOD DOES NOT RETURN AN ERROR IF IT FAILS
955239 - LASTSERVERERROR, ERROR$ WRONG IF CREATEDATABASEPOOL FAILS
953358 - MULTIBYTE - ORA-24812 WITH ORACLOB.READ
<none> - ACCESS VIOLATION WHEN USING COLLECTION ITERATORS
<none> - ORACOLLECTION - WHEN DYNASET MOVED, EOC BOC NOT RESET
<none> - ORACOLLECTION ELEMENTS CANNOT BE SET TO NULL
<none> - CPP: APT THREADING - TRANSACTIONAL METHODS ON OSESSION MAY BE IGNORED

E-mail this page
Printer View Printer View
Oracle Is The Information Company About Oracle | Oracle RSS Feeds | Careers | Contact Us | Site Maps | Legal Notices | Terms of Use | Privacy