Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Data / System / Data / OleDb / OleDbError.cs / 1 / OleDbError.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- namespace System.Data.OleDb { using System; using System.Data.Common; using System.Diagnostics; using System.Globalization; using System.Runtime.InteropServices; [Serializable] #if WINFSInternalOnly internal #else public #endif sealed class OleDbError { readonly private string message; readonly private string source; readonly private string sqlState; readonly private int nativeError; internal OleDbError(UnsafeNativeMethods.IErrorRecords errorRecords, int index) { OleDbHResult hr; int lcid = System.Globalization.CultureInfo.CurrentCulture.LCID; Bid.Trace("\n"); UnsafeNativeMethods.IErrorInfo errorInfo = errorRecords.GetErrorInfo(index, lcid); if (null != errorInfo) { Bid.Trace(" \n"); hr = errorInfo.GetDescription(out this.message); Bid.Trace(" Message='%ls'\n", this.message); if (OleDbHResult.DB_E_NOLOCALE == hr) { // MDAC 87303 Bid.Trace(" ErrorInfo\n"); Marshal.ReleaseComObject(errorInfo); Bid.Trace(" \n"); lcid = SafeNativeMethods.GetUserDefaultLCID(); Bid.Trace(" LCID=%d\n", lcid); errorInfo = errorRecords.GetErrorInfo(index, lcid); if (null != errorInfo) { Bid.Trace(" \n"); hr = errorInfo.GetDescription(out this.message); Bid.Trace(" Message='%ls'\n", this.message); } } if ((hr < 0) && ADP.IsEmpty(this.message)) { this.message = ODB.FailedGetDescription(hr); } if (null != errorInfo) { Bid.Trace(" \n"); hr = errorInfo.GetSource(out this.source); Bid.Trace(" Source='%ls'\n", this.source); if (OleDbHResult.DB_E_NOLOCALE == hr) { // MDAC 87303 Marshal.ReleaseComObject(errorInfo); Bid.Trace(" \n"); lcid = SafeNativeMethods.GetUserDefaultLCID(); Bid.Trace(" LCID=%d\n", lcid); errorInfo = errorRecords.GetErrorInfo(index, lcid); if (null != errorInfo) { Bid.Trace(" \n"); hr = errorInfo.GetSource(out this.source); Bid.Trace(" Source='%ls'\n", this.source); } } if ((hr < 0) && ADP.IsEmpty(this.source)) { this.source = ODB.FailedGetSource(hr); } Bid.Trace(" ErrorInfo\n"); Marshal.ReleaseComObject(errorInfo); } } UnsafeNativeMethods.ISQLErrorInfo sqlErrorInfo; Bid.Trace(" IID_ISQLErrorInfo\n"); hr = errorRecords.GetCustomErrorObject(index, ref ODB.IID_ISQLErrorInfo, out sqlErrorInfo); if (null != sqlErrorInfo) { Bid.Trace(" \n"); this.nativeError = sqlErrorInfo.GetSQLInfo(out this.sqlState); Bid.Trace(" SQLErrorInfo\n"); Marshal.ReleaseComObject(sqlErrorInfo); } } public string Message { get { string message = this.message; return ((null != message) ? message : ADP.StrEmpty); } } public int NativeError { get { return this.nativeError; } } public string Source { get { string source = this.source; return ((null != source) ? source : ADP.StrEmpty); } } public string SQLState { get { string sqlState = this.sqlState; return ((null != sqlState) ? sqlState : ADP.StrEmpty); } } override public string ToString() { return Message; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- namespace System.Data.OleDb { using System; using System.Data.Common; using System.Diagnostics; using System.Globalization; using System.Runtime.InteropServices; [Serializable] #if WINFSInternalOnly internal #else public #endif sealed class OleDbError { readonly private string message; readonly private string source; readonly private string sqlState; readonly private int nativeError; internal OleDbError(UnsafeNativeMethods.IErrorRecords errorRecords, int index) { OleDbHResult hr; int lcid = System.Globalization.CultureInfo.CurrentCulture.LCID; Bid.Trace("\n"); UnsafeNativeMethods.IErrorInfo errorInfo = errorRecords.GetErrorInfo(index, lcid); if (null != errorInfo) { Bid.Trace(" \n"); hr = errorInfo.GetDescription(out this.message); Bid.Trace(" Message='%ls'\n", this.message); if (OleDbHResult.DB_E_NOLOCALE == hr) { // MDAC 87303 Bid.Trace(" ErrorInfo\n"); Marshal.ReleaseComObject(errorInfo); Bid.Trace(" \n"); lcid = SafeNativeMethods.GetUserDefaultLCID(); Bid.Trace(" LCID=%d\n", lcid); errorInfo = errorRecords.GetErrorInfo(index, lcid); if (null != errorInfo) { Bid.Trace(" \n"); hr = errorInfo.GetDescription(out this.message); Bid.Trace(" Message='%ls'\n", this.message); } } if ((hr < 0) && ADP.IsEmpty(this.message)) { this.message = ODB.FailedGetDescription(hr); } if (null != errorInfo) { Bid.Trace(" \n"); hr = errorInfo.GetSource(out this.source); Bid.Trace(" Source='%ls'\n", this.source); if (OleDbHResult.DB_E_NOLOCALE == hr) { // MDAC 87303 Marshal.ReleaseComObject(errorInfo); Bid.Trace(" \n"); lcid = SafeNativeMethods.GetUserDefaultLCID(); Bid.Trace(" LCID=%d\n", lcid); errorInfo = errorRecords.GetErrorInfo(index, lcid); if (null != errorInfo) { Bid.Trace(" \n"); hr = errorInfo.GetSource(out this.source); Bid.Trace(" Source='%ls'\n", this.source); } } if ((hr < 0) && ADP.IsEmpty(this.source)) { this.source = ODB.FailedGetSource(hr); } Bid.Trace(" ErrorInfo\n"); Marshal.ReleaseComObject(errorInfo); } } UnsafeNativeMethods.ISQLErrorInfo sqlErrorInfo; Bid.Trace(" IID_ISQLErrorInfo\n"); hr = errorRecords.GetCustomErrorObject(index, ref ODB.IID_ISQLErrorInfo, out sqlErrorInfo); if (null != sqlErrorInfo) { Bid.Trace(" \n"); this.nativeError = sqlErrorInfo.GetSQLInfo(out this.sqlState); Bid.Trace(" SQLErrorInfo\n"); Marshal.ReleaseComObject(sqlErrorInfo); } } public string Message { get { string message = this.message; return ((null != message) ? message : ADP.StrEmpty); } } public int NativeError { get { return this.nativeError; } } public string Source { get { string source = this.source; return ((null != source) ? source : ADP.StrEmpty); } } public string SQLState { get { string sqlState = this.sqlState; return ((null != sqlState) ? sqlState : ADP.StrEmpty); } } override public string ToString() { return Message; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Paragraph.cs
- RijndaelCryptoServiceProvider.cs
- DesignOnlyAttribute.cs
- StringToken.cs
- EventHandlerList.cs
- PropertyPathWorker.cs
- SHA384Managed.cs
- Helpers.cs
- MouseGestureConverter.cs
- BoundsDrawingContextWalker.cs
- ComponentResourceManager.cs
- GacUtil.cs
- NativeMethods.cs
- _Win32.cs
- Point3D.cs
- XmlRawWriter.cs
- WsatConfiguration.cs
- GACMembershipCondition.cs
- assertwrapper.cs
- PaintEvent.cs
- SecurityBindingElement.cs
- ExecutorLocksHeldException.cs
- ActivityAction.cs
- LogSwitch.cs
- ExpressionBuilderCollection.cs
- HtmlGenericControl.cs
- EndPoint.cs
- CodeVariableDeclarationStatement.cs
- Optimizer.cs
- AnnotationComponentChooser.cs
- IISMapPath.cs
- SeparatorAutomationPeer.cs
- ZipIOExtraFieldElement.cs
- ScriptingJsonSerializationSection.cs
- OdbcEnvironment.cs
- LocatorPart.cs
- VisualTransition.cs
- InnerItemCollectionView.cs
- DataGridViewComboBoxColumn.cs
- QilInvokeLateBound.cs
- Bold.cs
- Queue.cs
- TreeWalkHelper.cs
- PEFileReader.cs
- Gdiplus.cs
- InvalidDataException.cs
- PackageRelationshipCollection.cs
- TextViewBase.cs
- CounterCreationDataCollection.cs
- PersonalizationDictionary.cs
- ModuleBuilder.cs
- AccessDataSource.cs
- ArgIterator.cs
- NoResizeHandleGlyph.cs
- TextRunProperties.cs
- LongValidatorAttribute.cs
- Pair.cs
- DependencySource.cs
- SoapIncludeAttribute.cs
- ExpressionBindingCollection.cs
- AmbientValueAttribute.cs
- DataBinder.cs
- SoapSchemaMember.cs
- WebPartChrome.cs
- XmlObjectSerializerReadContextComplex.cs
- CodeTypeParameterCollection.cs
- ErasingStroke.cs
- ValidationErrorEventArgs.cs
- XmlWriterTraceListener.cs
- ContextMenuAutomationPeer.cs
- InfoCardTrace.cs
- Configuration.cs
- DmlSqlGenerator.cs
- DataGridViewComboBoxColumn.cs
- NonVisualControlAttribute.cs
- CompModSwitches.cs
- XmlUtf8RawTextWriter.cs
- ApplyImportsAction.cs
- IdnElement.cs
- ListViewItemEventArgs.cs
- Application.cs
- ParserHooks.cs
- Wildcard.cs
- DataControlCommands.cs
- Graphics.cs
- DataBoundControlHelper.cs
- MailMessage.cs
- TextEditorTyping.cs
- XmlDocument.cs
- ContentPlaceHolder.cs
- BitmapEffectState.cs
- PtsPage.cs
- Util.cs
- ChineseLunisolarCalendar.cs
- CultureSpecificCharacterBufferRange.cs
- SizeLimitedCache.cs
- TabControl.cs
- ArgumentNullException.cs
- SynchronizedChannelCollection.cs
- OptimalBreakSession.cs