示例#1
0
文件: Odbc32.cs 项目: Maximys/runtime
        internal static string RetcodeToString(SQLRETURN retcode)
        {
            switch (retcode)
            {
            case SQLRETURN.SUCCESS: return("SUCCESS");

            case SQLRETURN.SUCCESS_WITH_INFO: return("SUCCESS_WITH_INFO");

            case SQLRETURN.ERROR: return("ERROR");

            case SQLRETURN.INVALID_HANDLE: return("INVALID_HANDLE");

            case SQLRETURN.NO_DATA: return("NO_DATA");

            default:
                Debug.Fail("Unknown enumerator passed to RetcodeToString method");
                goto case SQLRETURN.ERROR;
            }
        }
示例#2
0
文件: Odbc32.cs 项目: Maximys/runtime
        internal static void GetDiagErrors(OdbcErrorCollection errors, string?source, OdbcHandle hrHandle, SQLRETURN retcode)
        {
            Debug.Assert(retcode != ODBC32.SQLRETURN.INVALID_HANDLE, "retcode must never be ODBC32.RetCode.INVALID_HANDLE");
            if (SQLRETURN.SUCCESS != retcode)
            {
                int   NativeError;
                short iRec = 0;
                short cchActual;

                StringBuilder message = new StringBuilder(1024);
                string        sqlState;
                bool          moreerrors = true;
                while (moreerrors)
                {
                    ++iRec;

                    retcode = hrHandle.GetDiagnosticRecord(iRec, out sqlState, message, out NativeError, out cchActual);
                    if ((SQLRETURN.SUCCESS_WITH_INFO == retcode) && (message.Capacity - 1 < cchActual))
                    {
                        message.Capacity = cchActual + 1;
                        retcode          = hrHandle.GetDiagnosticRecord(iRec, out sqlState, message, out NativeError, out _);
                    }

                    //Note: SUCCESS_WITH_INFO from SQLGetDiagRec would be because
                    //the buffer is not large enough for the error string.
                    moreerrors = (retcode == SQLRETURN.SUCCESS || retcode == SQLRETURN.SUCCESS_WITH_INFO);
                    if (moreerrors)
                    {
                        //Sets up the InnerException as well...
                        errors.Add(new OdbcError(
                                       source,
                                       message.ToString(),
                                       sqlState,
                                       NativeError
                                       )
                                   );
                    }
                }
            }
        }
示例#3
0
文件: Odbc32.cs 项目: Maximys/runtime
        // Helpers
        internal static OdbcErrorCollection GetDiagErrors(string?source, OdbcHandle hrHandle, SQLRETURN retcode)
        {
            OdbcErrorCollection errors = new OdbcErrorCollection();

            GetDiagErrors(errors, source, hrHandle, retcode);
            return(errors);
        }