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
- ExpressionWriter.cs
- DataGridCellItemAutomationPeer.cs
- TagMapInfo.cs
- SingleObjectCollection.cs
- BinHexEncoder.cs
- RemotingConfigParser.cs
- SoapSchemaExporter.cs
- TdsParameterSetter.cs
- OperandQuery.cs
- RawStylusInputCustomData.cs
- MissingMethodException.cs
- GridViewUpdateEventArgs.cs
- ActivitySurrogateSelector.cs
- List.cs
- SqlUDTStorage.cs
- Automation.cs
- WsdlBuildProvider.cs
- DataService.cs
- SmtpReplyReader.cs
- ControlUtil.cs
- PrinterSettings.cs
- Double.cs
- Nullable.cs
- AlternationConverter.cs
- ListViewDataItem.cs
- StreamSecurityUpgradeInitiator.cs
- TypeForwardedToAttribute.cs
- PolyLineSegmentFigureLogic.cs
- HttpFileCollection.cs
- Solver.cs
- TextElementEnumerator.cs
- FixedDSBuilder.cs
- Mapping.cs
- FormatVersion.cs
- DependencyPropertyValueSerializer.cs
- COM2PictureConverter.cs
- UserControlCodeDomTreeGenerator.cs
- SamlEvidence.cs
- RadioButtonFlatAdapter.cs
- SplitContainer.cs
- LineSegment.cs
- SimplePropertyEntry.cs
- ExpressionHelper.cs
- ProcessInputEventArgs.cs
- DetailsViewRowCollection.cs
- DateTimeSerializationSection.cs
- InteropAutomationProvider.cs
- MeasureData.cs
- RuntimeEnvironment.cs
- UserPreferenceChangedEventArgs.cs
- TiffBitmapDecoder.cs
- ObjectHandle.cs
- UseAttributeSetsAction.cs
- XsdDataContractImporter.cs
- Win32Exception.cs
- PlainXmlWriter.cs
- NGCPageContentCollectionSerializerAsync.cs
- ViewStateException.cs
- DataListCommandEventArgs.cs
- FileSystemEventArgs.cs
- COM2PropertyDescriptor.cs
- TransferRequestHandler.cs
- CompiledQueryCacheEntry.cs
- BaseDataList.cs
- DataRowChangeEvent.cs
- RegexNode.cs
- ChangeConflicts.cs
- DbConnectionClosed.cs
- ConfigurationUtility.cs
- MeasurementDCInfo.cs
- altserialization.cs
- AsyncPostBackErrorEventArgs.cs
- DetailsViewRowCollection.cs
- FormatException.cs
- SortQuery.cs
- CustomWebEventKey.cs
- ImportContext.cs
- ServerValidateEventArgs.cs
- CornerRadius.cs
- ViewPort3D.cs
- indexingfiltermarshaler.cs
- MimeTypePropertyAttribute.cs
- DataGridViewCellPaintingEventArgs.cs
- HiddenFieldPageStatePersister.cs
- ElementAction.cs
- SoapCommonClasses.cs
- BaseTreeIterator.cs
- DataGridViewTopLeftHeaderCell.cs
- __Filters.cs
- InvalidProgramException.cs
- HandlerBase.cs
- TypeLibConverter.cs
- DynamicDocumentPaginator.cs
- RecipientIdentity.cs
- SocketElement.cs
- LinqDataView.cs
- AppSettingsSection.cs
- HttpWriter.cs
- DataSet.cs
- Classification.cs