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
- Operating System: Windows NT 4.0, Windows 2000 or Windows 98.
- Minimum processor: Pentium 166.
- 64 Mb memory (128 Mb recommended).
- 10 Mb free disk storage for the OO4O program files.
- 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.
- 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).
- 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 Controls 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 grids 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 Controls 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
|