Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Data / System / Data / OleDb / OleDbEnumerator.cs / 1 / OleDbEnumerator.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- namespace System.Data.OleDb { using System; using System.ComponentModel; using System.Data.Common; using System.Globalization; using System.Security; using System.Security.Permissions; #if WINFSInternalOnly internal #else public #endif sealed class OleDbEnumerator { public OleDbEnumerator() { } public DataTable GetElements() { OleDbConnection.ExecutePermission.Demand(); DataTable dataTable = new DataTable("MSDAENUM"); // WebData 112482 dataTable.Locale = CultureInfo.InvariantCulture; OleDbDataReader dataReader = GetRootEnumerator(); OleDbDataAdapter.FillDataTable(dataReader, dataTable); return dataTable; } static public OleDbDataReader GetEnumerator(Type type) { OleDbConnection.ExecutePermission.Demand(); return GetEnumeratorFromType(type); } static internal OleDbDataReader GetEnumeratorFromType(Type type) { // WebData 99005 // will demand security appropriately object value = Activator.CreateInstance(type, System.Reflection.BindingFlags.Public|System.Reflection.BindingFlags.Instance, null, null, CultureInfo.InvariantCulture, null); return GetEnumeratorReader(value); } static private OleDbDataReader GetEnumeratorReader(object value) { NativeMethods.ISourcesRowset srcrowset = null; try { srcrowset = (NativeMethods.ISourcesRowset) value; } catch(InvalidCastException) { throw ODB.ISourcesRowsetNotSupported(); } if (null == srcrowset) { throw ODB.ISourcesRowsetNotSupported(); } value = null; // still held by ISourcesRowset, reused for IRowset int propCount = 0; IntPtr propSets = ADP.PtrZero; Bid.Trace("IID_IRowset\n"); OleDbHResult hr = srcrowset.GetSourcesRowset(ADP.PtrZero, ODB.IID_IRowset, propCount, propSets, out value); Bid.Trace(" %08X{HRESULT}\n", hr); Exception f = OleDbConnection.ProcessResults(hr, null, null); if (null != f) { throw f; } OleDbDataReader dataReader = new OleDbDataReader(null, null, 0, CommandBehavior.Default); dataReader.InitializeIRowset(value, ChapterHandle.DB_NULL_HCHAPTER, ADP.RecordsUnaffected); dataReader.BuildMetaInfo(); dataReader.HasRowsRead(); return dataReader; } static public OleDbDataReader GetRootEnumerator() { OleDbConnection.ExecutePermission.Demand(); IntPtr hscp; Bid.ScopeEnter(out hscp, " \n"); try { //readonly Guid CLSID_MSDAENUM = new Guid(0xc8b522d0,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d); //Type msdaenum = Type.GetTypeFromCLSID(CLSID_MSDAENUM, true); const string PROGID_MSDAENUM = "MSDAENUM"; Type msdaenum = Type.GetTypeFromProgID(PROGID_MSDAENUM, true); return GetEnumeratorFromType(msdaenum); } finally { Bid.ScopeLeave(ref hscp); } } } } // 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.ComponentModel; using System.Data.Common; using System.Globalization; using System.Security; using System.Security.Permissions; #if WINFSInternalOnly internal #else public #endif sealed class OleDbEnumerator { public OleDbEnumerator() { } public DataTable GetElements() { OleDbConnection.ExecutePermission.Demand(); DataTable dataTable = new DataTable("MSDAENUM"); // WebData 112482 dataTable.Locale = CultureInfo.InvariantCulture; OleDbDataReader dataReader = GetRootEnumerator(); OleDbDataAdapter.FillDataTable(dataReader, dataTable); return dataTable; } static public OleDbDataReader GetEnumerator(Type type) { OleDbConnection.ExecutePermission.Demand(); return GetEnumeratorFromType(type); } static internal OleDbDataReader GetEnumeratorFromType(Type type) { // WebData 99005 // will demand security appropriately object value = Activator.CreateInstance(type, System.Reflection.BindingFlags.Public|System.Reflection.BindingFlags.Instance, null, null, CultureInfo.InvariantCulture, null); return GetEnumeratorReader(value); } static private OleDbDataReader GetEnumeratorReader(object value) { NativeMethods.ISourcesRowset srcrowset = null; try { srcrowset = (NativeMethods.ISourcesRowset) value; } catch(InvalidCastException) { throw ODB.ISourcesRowsetNotSupported(); } if (null == srcrowset) { throw ODB.ISourcesRowsetNotSupported(); } value = null; // still held by ISourcesRowset, reused for IRowset int propCount = 0; IntPtr propSets = ADP.PtrZero; Bid.Trace("IID_IRowset\n"); OleDbHResult hr = srcrowset.GetSourcesRowset(ADP.PtrZero, ODB.IID_IRowset, propCount, propSets, out value); Bid.Trace(" %08X{HRESULT}\n", hr); Exception f = OleDbConnection.ProcessResults(hr, null, null); if (null != f) { throw f; } OleDbDataReader dataReader = new OleDbDataReader(null, null, 0, CommandBehavior.Default); dataReader.InitializeIRowset(value, ChapterHandle.DB_NULL_HCHAPTER, ADP.RecordsUnaffected); dataReader.BuildMetaInfo(); dataReader.HasRowsRead(); return dataReader; } static public OleDbDataReader GetRootEnumerator() { OleDbConnection.ExecutePermission.Demand(); IntPtr hscp; Bid.ScopeEnter(out hscp, " \n"); try { //readonly Guid CLSID_MSDAENUM = new Guid(0xc8b522d0,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d); //Type msdaenum = Type.GetTypeFromCLSID(CLSID_MSDAENUM, true); const string PROGID_MSDAENUM = "MSDAENUM"; Type msdaenum = Type.GetTypeFromProgID(PROGID_MSDAENUM, true); return GetEnumeratorFromType(msdaenum); } finally { Bid.ScopeLeave(ref hscp); } } } } // 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
- UserControlCodeDomTreeGenerator.cs
- BitmapSizeOptions.cs
- ControlEvent.cs
- EntitySqlQueryCacheKey.cs
- CryptoHandle.cs
- ISessionStateStore.cs
- SessionSymmetricTransportSecurityProtocolFactory.cs
- Enum.cs
- followingsibling.cs
- AspNetPartialTrustHelpers.cs
- Parser.cs
- BrushConverter.cs
- CodeParameterDeclarationExpression.cs
- SafeNativeMethodsOther.cs
- ErrorStyle.cs
- KeySplineConverter.cs
- IncomingWebRequestContext.cs
- UnicodeEncoding.cs
- JavascriptCallbackResponseProperty.cs
- SerializationSectionGroup.cs
- Schema.cs
- SerializationIncompleteException.cs
- DBSqlParserColumn.cs
- GridViewRow.cs
- CharConverter.cs
- AssertUtility.cs
- SslStreamSecurityUpgradeProvider.cs
- Int16Converter.cs
- SafeHandle.cs
- FlagPanel.cs
- TextParagraphCache.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- KeyedQueue.cs
- GroupBoxAutomationPeer.cs
- DataGridViewComboBoxCell.cs
- SelectingProviderEventArgs.cs
- SafeCryptoHandles.cs
- PenContext.cs
- VirtualPathUtility.cs
- GeneralTransformGroup.cs
- ObjectDataSourceDisposingEventArgs.cs
- TimeoutException.cs
- SchemaCollectionCompiler.cs
- TaskResultSetter.cs
- CLSCompliantAttribute.cs
- DependencyPropertyAttribute.cs
- ImageSource.cs
- ScrollItemPattern.cs
- SafeNativeMethods.cs
- JsonXmlDataContract.cs
- XXXOnTypeBuilderInstantiation.cs
- FlowDocumentReader.cs
- TemplateBindingExtension.cs
- ReadOnlyDataSource.cs
- RoleGroupCollection.cs
- XmlAtomicValue.cs
- ByteConverter.cs
- SoapTypeAttribute.cs
- CAGDesigner.cs
- TemplatedMailWebEventProvider.cs
- ToolStripRenderer.cs
- TypedElement.cs
- PKCS1MaskGenerationMethod.cs
- SqlProvider.cs
- SerializationAttributes.cs
- SQLGuid.cs
- RelationshipManager.cs
- JoinSymbol.cs
- ActivityStatusChangeEventArgs.cs
- DefaultMemberAttribute.cs
- ListArgumentProvider.cs
- SortQuery.cs
- OdbcEnvironmentHandle.cs
- Regex.cs
- TargetConverter.cs
- ImageDesigner.cs
- FileDialogPermission.cs
- ISFTagAndGuidCache.cs
- XmlDocumentType.cs
- Command.cs
- Content.cs
- StorageEndPropertyMapping.cs
- WebHeaderCollection.cs
- Grant.cs
- DatePickerDateValidationErrorEventArgs.cs
- ObjectListGeneralPage.cs
- DesignColumn.cs
- XmlDocumentFragment.cs
- DropAnimation.xaml.cs
- TargetException.cs
- RC2CryptoServiceProvider.cs
- DbDataAdapter.cs
- EventWaitHandleSecurity.cs
- TraversalRequest.cs
- WindowsListViewGroup.cs
- WindowsListViewScroll.cs
- DataGridLinkButton.cs
- ComponentResourceKeyConverter.cs
- SessionEndingCancelEventArgs.cs
- ResourcePermissionBase.cs