OCI_File * OCI_API OCI_FileCreate ( OCI_Connection *con, unsigned int type ) { OCI_File *file = NULL; OCI_CHECK_INITIALIZED(NULL); OCI_CHECK_PTR(OCI_IPC_CONNECTION, con, NULL); file = OCI_FileInit(con, &file, NULL, type); OCI_RESULT(file != NULL); return file; }
boolean OCI_ArrayInit ( OCI_Array *arr, OCI_TypeInfo *typinf ) { unsigned int i; for (i = 0; i < arr->nb_elem; i++) { void *handle = NULL; if (OCI_CDT_DATETIME == arr->elem_type) { handle = &(((OCIDate *)(arr->mem_handle))[i]); } else { handle = ((void **)(arr->mem_handle))[i]; } arr->tab_obj[i] = ((char *) arr->mem_struct) + (arr->struct_size * i); ((OCI_Datatype *) (arr->tab_obj[i]))->hstate = OCI_OBJECT_ALLOCATED_ARRAY; switch (arr->elem_type) { case OCI_CDT_DATETIME: { OCI_DateInit(arr->con, (OCI_Date **) &arr->tab_obj[i], (OCIDate *) handle, FALSE, FALSE); break; } case OCI_CDT_LOB: { OCI_LobInit(arr->con, (OCI_Lob **) &arr->tab_obj[i], (OCILobLocator *) handle, arr->elem_subtype); break; } case OCI_CDT_FILE: { OCI_FileInit(arr->con, (OCI_File **) &arr->tab_obj[i], (OCILobLocator *) handle, arr->elem_subtype); break; } case OCI_CDT_TIMESTAMP: { OCI_TimestampInit(arr->con, (OCI_Timestamp **) &arr->tab_obj[i], (OCIDateTime *) handle, arr->elem_subtype); break; } case OCI_CDT_INTERVAL: { OCI_IntervalInit(arr->con, (OCI_Interval **) &arr->tab_obj[i], (OCIInterval *) handle, arr->elem_subtype); break; } case OCI_CDT_OBJECT: { OCI_ObjectInit(arr->con, (OCI_Object **) &arr->tab_obj[i], handle, typinf, NULL, -1, TRUE); break; } case OCI_CDT_COLLECTION: { OCI_CollInit(arr->con, (OCI_Coll **) &arr->tab_obj[i], handle, typinf); break; } case OCI_CDT_REF: { OCI_RefInit(arr->con, &typinf, (OCI_Ref **) &arr->tab_obj[i], handle); break; } } } return TRUE; }