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
- Help.cs
- CommandID.cs
- CngKeyCreationParameters.cs
- ManagementOptions.cs
- AppDomainManager.cs
- ArraySet.cs
- GeometryDrawing.cs
- HttpPostLocalhostServerProtocol.cs
- RegexGroupCollection.cs
- SoapElementAttribute.cs
- WindowsIdentity.cs
- ConfigXmlElement.cs
- SymDocumentType.cs
- OverlappedAsyncResult.cs
- PackageFilter.cs
- MinimizableAttributeTypeConverter.cs
- XmlMembersMapping.cs
- CollectionEditor.cs
- PersistenceParticipant.cs
- DataServiceKeyAttribute.cs
- CapabilitiesUse.cs
- DnsPermission.cs
- ADConnectionHelper.cs
- MsmqDiagnostics.cs
- ButtonBase.cs
- DataBoundControlAdapter.cs
- WithStatement.cs
- ColumnWidthChangingEvent.cs
- WebPartEditorCancelVerb.cs
- WizardForm.cs
- XmlWrappingReader.cs
- Delegate.cs
- StylusDownEventArgs.cs
- WindowsFormsHostPropertyMap.cs
- TemplateBaseAction.cs
- GridErrorDlg.cs
- ButtonBaseAdapter.cs
- ISessionStateStore.cs
- TraceHelpers.cs
- NGCSerializerAsync.cs
- MessageQueuePermission.cs
- PtsHost.cs
- AccessDataSource.cs
- GetTokenRequest.cs
- ObjectPersistData.cs
- LogSwitch.cs
- TableLayoutPanelCellPosition.cs
- AffineTransform3D.cs
- WinInetCache.cs
- FormsAuthenticationModule.cs
- DesignerDataParameter.cs
- SchemaMapping.cs
- DispatcherFrame.cs
- EFDataModelProvider.cs
- Peer.cs
- ComponentSerializationService.cs
- DataKey.cs
- CategoryNameCollection.cs
- securestring.cs
- SqlIdentifier.cs
- WebZone.cs
- ErrorLog.cs
- AssemblyHash.cs
- ConfigurationValues.cs
- SQLChars.cs
- EntityDataSourceChangedEventArgs.cs
- BinHexDecoder.cs
- TableCellCollection.cs
- GridItem.cs
- FormViewAutoFormat.cs
- TailPinnedEventArgs.cs
- NativeMethods.cs
- EncryptedReference.cs
- DBConcurrencyException.cs
- CodeFieldReferenceExpression.cs
- EventRoute.cs
- SQLInt16.cs
- WhitespaceRuleLookup.cs
- ProtocolsSection.cs
- TextSelection.cs
- AuthenticationSection.cs
- DocumentsTrace.cs
- InheritanceAttribute.cs
- ModuleElement.cs
- ImageDesigner.cs
- InputLangChangeRequestEvent.cs
- WebPartCloseVerb.cs
- SqlGatherProducedAliases.cs
- OverrideMode.cs
- GlyphsSerializer.cs
- HttpModuleAction.cs
- StrokeNodeOperations2.cs
- HostedBindingBehavior.cs
- XmlSerializerAssemblyAttribute.cs
- FlowDocumentReader.cs
- XslAstAnalyzer.cs
- CodeDomConfigurationHandler.cs
- CompiledQueryCacheEntry.cs
- formatstringdialog.cs
- HwndStylusInputProvider.cs