Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- GridViewCommandEventArgs.cs
- TransportContext.cs
- CellConstant.cs
- SingleAnimationUsingKeyFrames.cs
- StoreAnnotationsMap.cs
- ErrorInfoXmlDocument.cs
- SequentialOutput.cs
- ImageDrawing.cs
- ResourceManager.cs
- SystemIPAddressInformation.cs
- PropertyBuilder.cs
- SiteMapNode.cs
- LexicalChunk.cs
- LicenseProviderAttribute.cs
- FileUpload.cs
- TimeoutException.cs
- XPathSingletonIterator.cs
- ListControl.cs
- NavigationWindow.cs
- ItemChangedEventArgs.cs
- SAPICategories.cs
- ServiceModelExtensionElement.cs
- StandardBindingCollectionElement.cs
- ServicePoint.cs
- SyndicationCategory.cs
- ToolStripOverflowButton.cs
- SchemaType.cs
- CodeDomExtensionMethods.cs
- SafeUserTokenHandle.cs
- BookmarkList.cs
- ConfigurationException.cs
- IsolatedStoragePermission.cs
- ValueUtilsSmi.cs
- Utils.cs
- CodeBinaryOperatorExpression.cs
- AdapterSwitches.cs
- DefaultObjectMappingItemCollection.cs
- ReflectionTypeLoadException.cs
- WindowsGrip.cs
- DataGridItemEventArgs.cs
- DataServiceRequestOfT.cs
- TableChangeProcessor.cs
- ToolStripOverflowButton.cs
- TableItemStyle.cs
- SocketPermission.cs
- _AutoWebProxyScriptHelper.cs
- WinEventQueueItem.cs
- TreeViewItemAutomationPeer.cs
- XPathDocumentNavigator.cs
- StringResourceManager.cs
- NamespaceListProperty.cs
- Pen.cs
- NotConverter.cs
- Hash.cs
- ReliabilityContractAttribute.cs
- ListViewItemSelectionChangedEvent.cs
- CipherData.cs
- NoPersistHandle.cs
- HwndSourceKeyboardInputSite.cs
- path.cs
- TheQuery.cs
- Color.cs
- CompatibleIComparer.cs
- SafeCertificateStore.cs
- Style.cs
- MenuItemCollection.cs
- BooleanFacetDescriptionElement.cs
- ErrorStyle.cs
- AsyncCompletedEventArgs.cs
- WorkflowMessageEventArgs.cs
- Resources.Designer.cs
- JsonEnumDataContract.cs
- SqlDataSourceView.cs
- XmlILTrace.cs
- MsmqIntegrationChannelFactory.cs
- RadialGradientBrush.cs
- HttpWebResponse.cs
- TileModeValidation.cs
- XmlBinaryReader.cs
- PropertyTabAttribute.cs
- TableChangeProcessor.cs
- DBPropSet.cs
- MultiSelectRootGridEntry.cs
- httpserverutility.cs
- MatrixAnimationUsingKeyFrames.cs
- SecurityContextCookieSerializer.cs
- GridToolTip.cs
- DbConnectionClosed.cs
- Utils.cs
- ClientApiGenerator.cs
- TimeSpanStorage.cs
- TextBlockAutomationPeer.cs
- LogEntrySerializer.cs
- PersonalizationDictionary.cs
- DataKeyCollection.cs
- StrokeCollection2.cs
- SystemResourceHost.cs
- StubHelpers.cs
- AssemblyHelper.cs
- ServiceDescription.cs