2008-01-28 Version 1.6.0 Vincent Rogier vince_rogier@yahoo.fr * Extended Oracle version information - OCI_GetServerMajorVersion() - OCI_GetServerMinorVersion() - OCI_GetServerRevisionVersion() * Added support for "SQL returning clause" - OCI_GetNextResultset() - OCI_RegisterInt() - OCI_RegisterString() - OCI_RegisterRaw() - OCI_RegisterDouble() - OCI_RegisterDate() - OCI_RegisterLob() - OCI_RegisterFile() - OCI_RegisterTimestamp() - OCI_RegisterInterval() * Miscellaneous added functions - OCI_BindArrayGetSize() - OCI_GetColumnCharUsed() - OCI_SchemaGetTableName() * Important modifications - OCI_BindString() and OCI_BindArrayOfStrings() : the parameter len which is the max length of the buffer (or array element) is NOW : * UNDERSTOOD WITHOUT the zero terminal terminator. * EXPRESSED in CHARACTERS - So, for OCI_BindString() : * if the string is char str[31], pass 30 as len instead of 31 in earlier version * if the string is wchar_t str[31], pass 30 as len instead of 62 in earlier version - So, for OCI_BindArrayOfStrings() : * if the string is char str[10][31], pass 30 as len instead of 31 in earlier version * if the string is wchar_t str[10][31], pass 30 as len instead of 62 in earlier version - OCI_GetColumnSize() : return the size in characters for string column created with the qualifier CHAR for indicating the size in character and not in bytes - Prototypes for OCI_BindArrayOfInts(), OCI_BindArrayOfDoubles(), OCI_BindArrayOfStrings() changed : * For scalar C types (int, double and char*), the 'data' parameter was changed from type** to type* in order to avoid compiler warnings and casts * Miscellaneous modifications - Updated documentation (returning features and rowids, ...) - Extended source code comments - OCI_IsNull() was returning FALSE with a NULL handle, now returns TRUE - Added few cast and corrected few variable cast to compile nicely with highest warning level (on MS VS2005) - Some static were missing from internal function prototypes declaration - OCI_FreeResultset() => removed from public interface - Updated input parameter checking macros return values of few functions - OCI_SchemaGetTable() -> input parameter checking was missing - Updated demo application to make it fully portable (charset and platform) - Added comments on internal structure members - Call to OCI_GetXXXX2() : added checking on the internal map object allocation on failure - OCI_BindRaw() : now returns FALSE if len <= 0 - OCI_ALLOC() : removed type casting * Miscellaneous fixes - OCI_Immediate() and OCI_ImmediateFmt() : timestamp and interval params ARE STILL NOT parsed from formatted query - Some NUMBER columns were wrongly mapped to C int type instead of double - OCI_Long internal structure could not be freed for an standalone instance - Demo application for handling string in unicode and mixed mode - OCI_LobErase : added size checking (oracle error with size = 0 on an empty lob) - OCI_BindArrayOfStrings : the allocated size was done with sizeof(mtext) instead of sizeof(dtext)