| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- //
- // System.Data.Odbc.OdbcError
- //
- // Author:
- // Brian Ritchie ([email protected])
- //
- // Copyright (C) Brian Ritchie, 2002
- //
- using System.Collections;
- using System.ComponentModel;
- using System.Data;
- using System.Data.Common;
- namespace System.Data.Odbc
- {
- public class OdbcError
- {
- string message,source,sqlstate;
- int nativeerror;
- #region Constructors
- internal OdbcError(string Source)
- {
- nativeerror=1;
- source=Source;
- message="Error in "+source;
- sqlstate="";
- }
- internal OdbcError(string Source, OdbcHandleType HandleType, IntPtr Handle)
- {
- short buflen=256,txtlen=0;
- OdbcReturn ret=OdbcReturn.Success;
- byte[] buf_MsgText=new byte[buflen];
- byte[] buf_SqlState=new byte[buflen];
- bool NeedsDecode=true;
- this.source=Source;
- switch (HandleType)
- {
- case OdbcHandleType.Dbc:
- ret=libodbc.SQLError(IntPtr.Zero,Handle,IntPtr.Zero, buf_SqlState,
- ref nativeerror, buf_MsgText, buflen, ref txtlen);
- break;
- case OdbcHandleType.Stmt:
- ret=libodbc.SQLError(IntPtr.Zero,IntPtr.Zero,Handle, buf_SqlState,
- ref nativeerror, buf_MsgText, buflen, ref txtlen);
- break;
- case OdbcHandleType.Env:
- ret=libodbc.SQLError(Handle,IntPtr.Zero,IntPtr.Zero, buf_SqlState,
- ref nativeerror, buf_MsgText, buflen, ref txtlen);
- break;
- default:
- nativeerror=1;
- source=Source;
- message="Error in "+source;
- sqlstate="";
- NeedsDecode=false;
- break;
- }
- if (NeedsDecode)
- {
- if (ret!=OdbcReturn.Success)
- {
- nativeerror=1;
- source=Source;
- message="Unable to retreive error information from ODBC driver manager";
- sqlstate="";
- }
- else
- {
- sqlstate=System.Text.Encoding.Default.GetString(buf_SqlState).Replace((char) 0,' ').Trim();;
- message=System.Text.Encoding.Default.GetString(buf_MsgText).Replace((char) 0,' ').Trim();;
- }
- }
- }
- #endregion // Constructors
-
- #region Properties
- public string Message
- {
- get
- {
- return message;
- }
- }
- public int NativeError
- {
- get
- {
- return nativeerror;
- }
- }
- public string Source
- {
- get
- {
- return source;
- }
- }
- public string SQLState
- {
- get
- {
- return sqlstate;
- }
- }
- #endregion // Properties
- }
- }
|