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
- QuotedPrintableStream.cs
- MouseActionConverter.cs
- RepeaterCommandEventArgs.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- StreamResourceInfo.cs
- Mappings.cs
- ApplicationException.cs
- IdentityManager.cs
- SHA1CryptoServiceProvider.cs
- RuntimeEnvironment.cs
- WebDescriptionAttribute.cs
- ExpressionPrinter.cs
- ProviderCollection.cs
- InternalCache.cs
- ListViewDataItem.cs
- SafeNativeMethodsOther.cs
- HttpClientCertificate.cs
- EventMappingSettings.cs
- ItemList.cs
- ToolboxBitmapAttribute.cs
- DefaultPropertyAttribute.cs
- ClonableStack.cs
- SoapAttributeOverrides.cs
- JoinCqlBlock.cs
- RelatedPropertyManager.cs
- AggregateNode.cs
- CompositeFontFamily.cs
- IIS7UserPrincipal.cs
- XsdDuration.cs
- PersonalizationState.cs
- MenuItem.cs
- XmlSchemaValidator.cs
- MeasurementDCInfo.cs
- sqlstateclientmanager.cs
- TimerEventSubscription.cs
- ComponentResourceKeyConverter.cs
- AnimationException.cs
- QueryableDataSourceHelper.cs
- SmiSettersStream.cs
- UnsafeNativeMethodsMilCoreApi.cs
- BrowsableAttribute.cs
- SqlServer2KCompatibilityCheck.cs
- RC2.cs
- FontWeightConverter.cs
- RecognizedWordUnit.cs
- StreamWriter.cs
- DataTemplateSelector.cs
- ClientFormsAuthenticationCredentials.cs
- GlyphInfoList.cs
- _NativeSSPI.cs
- SharedPersonalizationStateInfo.cs
- PerformanceCounterNameAttribute.cs
- DragEvent.cs
- MsmqBindingElementBase.cs
- KeyConstraint.cs
- StructuredType.cs
- ValidatingReaderNodeData.cs
- MatchAttribute.cs
- Positioning.cs
- HtmlToClrEventProxy.cs
- FacetChecker.cs
- StringFunctions.cs
- FormsIdentity.cs
- Encoding.cs
- PerformanceCounterPermissionAttribute.cs
- Stroke.cs
- Processor.cs
- PropertyIDSet.cs
- _AuthenticationState.cs
- SetIterators.cs
- PeerTransportCredentialType.cs
- FixedSOMFixedBlock.cs
- ArgumentsParser.cs
- ClientOptions.cs
- PersonalizationProviderHelper.cs
- WsiProfilesElement.cs
- Journaling.cs
- WorkflowRuntimeBehavior.cs
- Baml6Assembly.cs
- DetailsViewPagerRow.cs
- JsonServiceDocumentSerializer.cs
- TemplatedEditableDesignerRegion.cs
- GridItem.cs
- CompoundFileStreamReference.cs
- GenericWebPart.cs
- CheckBoxDesigner.cs
- VerifyHashRequest.cs
- DbMetaDataFactory.cs
- TableProviderWrapper.cs
- PasswordTextContainer.cs
- ProxyWebPart.cs
- HostDesigntimeLicenseContext.cs
- ConsumerConnectionPoint.cs
- XPathScanner.cs
- ParallelTimeline.cs
- ConvertEvent.cs
- ProfileParameter.cs
- EditorZone.cs
- ObjectSelectorEditor.cs
- ToolStripSettings.cs