Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- ImageBrush.cs
- SrgsRulesCollection.cs
- InputLangChangeEvent.cs
- XPathParser.cs
- StyleHelper.cs
- HiddenFieldPageStatePersister.cs
- HttpServerUtilityWrapper.cs
- DecoderNLS.cs
- ConnectionConsumerAttribute.cs
- IERequestCache.cs
- HMACRIPEMD160.cs
- MinimizableAttributeTypeConverter.cs
- SqlBulkCopyColumnMapping.cs
- TraceSource.cs
- WindowShowOrOpenTracker.cs
- Pkcs9Attribute.cs
- WeakEventTable.cs
- HashSetDebugView.cs
- BindingListCollectionView.cs
- AsymmetricKeyExchangeFormatter.cs
- SqlTypeConverter.cs
- LookupBindingPropertiesAttribute.cs
- ChangesetResponse.cs
- XmlObjectSerializer.cs
- NavigationWindow.cs
- Parameter.cs
- PointLightBase.cs
- ExpandableObjectConverter.cs
- SystemException.cs
- XmlDocumentSchema.cs
- MemberInfoSerializationHolder.cs
- TypeBuilderInstantiation.cs
- RowSpanVector.cs
- MimeFormatExtensions.cs
- ByteFacetDescriptionElement.cs
- AuthenticatedStream.cs
- StreamSecurityUpgradeInitiatorAsyncResult.cs
- RequestCachePolicyConverter.cs
- DataGridRowEventArgs.cs
- Rect3D.cs
- PathFigure.cs
- MessageQueuePermissionAttribute.cs
- ConfigXmlText.cs
- CodeCommentStatementCollection.cs
- AlternateViewCollection.cs
- OdbcTransaction.cs
- XmlTextReaderImpl.cs
- UrlPropertyAttribute.cs
- UrlPropertyAttribute.cs
- ProfileSettingsCollection.cs
- GrammarBuilderBase.cs
- CombinedHttpChannel.cs
- FocusManager.cs
- MetadataCache.cs
- StateValidator.cs
- SQlBooleanStorage.cs
- LoginUtil.cs
- GrowingArray.cs
- ColorEditor.cs
- EdmError.cs
- SQLChars.cs
- UserPreferenceChangedEventArgs.cs
- TableCellAutomationPeer.cs
- IgnoreSection.cs
- BinHexEncoder.cs
- CallbackValidator.cs
- XmlSchemaObjectTable.cs
- DbSourceParameterCollection.cs
- SchemaDeclBase.cs
- SqlReferenceCollection.cs
- Terminate.cs
- DecoderFallbackWithFailureFlag.cs
- ScriptControl.cs
- RTLAwareMessageBox.cs
- DSASignatureFormatter.cs
- CodeCommentStatementCollection.cs
- TransformerTypeCollection.cs
- AssemblySettingAttributes.cs
- SessionStateSection.cs
- ToolBarButtonDesigner.cs
- PrimaryKeyTypeConverter.cs
- UnsafeNativeMethodsMilCoreApi.cs
- DecimalSumAggregationOperator.cs
- GPPOINT.cs
- smtpconnection.cs
- SqlDataSource.cs
- NullableConverter.cs
- PermissionAttributes.cs
- SizeFConverter.cs
- ImageClickEventArgs.cs
- pingexception.cs
- WebCategoryAttribute.cs
- PrintPreviewGraphics.cs
- HttpModuleAction.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- DesignerTextWriter.cs
- GridViewRowEventArgs.cs
- DescendentsWalkerBase.cs
- ViewgenGatekeeper.cs
- HostedTransportConfigurationBase.cs