private void CreateDeferredInfoMessage(OciErrorHandle errorHandle, int rc)
        {
            OracleInfoMessageEventArgs        item = new OracleInfoMessageEventArgs(OracleException.CreateException(errorHandle, rc));
            List <OracleInfoMessageEventArgs> list = this._deferredInfoMessageCollection;

            if (list == null)
            {
                list = this._deferredInfoMessageCollection = new List <OracleInfoMessageEventArgs>();
            }
            list.Add(item);
        }
예제 #2
0
        internal void CheckError(OciErrorHandle errorHandle, int rc)
        {
            switch (((OCI.RETURNCODE)rc))
            {
            case OCI.RETURNCODE.OCI_INVALID_HANDLE:
                throw System.Data.Common.ADP.InvalidOperation(System.Data.OracleClient.Res.GetString("ADP_InternalError", new object[] { rc }));

            case OCI.RETURNCODE.OCI_ERROR:
            case OCI.RETURNCODE.OCI_NO_DATA:
            {
                Exception exception2 = System.Data.Common.ADP.OracleError(errorHandle, rc);
                if ((errorHandle != null) && errorHandle.ConnectionIsBroken)
                {
                    OracleInternalConnection openInternalConnection = this.GetOpenInternalConnection();
                    if (openInternalConnection != null)
                    {
                        openInternalConnection.ConnectionIsBroken();
                    }
                }
                throw exception2;
            }

            case OCI.RETURNCODE.OCI_SUCCESS_WITH_INFO:
            {
                OracleInfoMessageEventArgs infoMessageEvent = new OracleInfoMessageEventArgs(OracleException.CreateException(errorHandle, rc));
                this.OnInfoMessage(infoMessageEvent);
                return;
            }
            }
            if ((rc < 0) || (rc == 0x63))
            {
                throw System.Data.Common.ADP.Simple(System.Data.OracleClient.Res.GetString("ADP_UnexpectedReturnCode", new object[] { rc.ToString(CultureInfo.CurrentCulture) }));
            }
        }