Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Data / System / Data / OleDb / OleDbEnumerator.cs / 1305376 / 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; public 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
- ImageIndexConverter.cs
- AnnotationStore.cs
- LogicalExpr.cs
- TextBox.cs
- BitmapFrameDecode.cs
- SelectionItemPattern.cs
- ListViewDeleteEventArgs.cs
- ObjectDataSourceEventArgs.cs
- UseLicense.cs
- DispatcherObject.cs
- ComplexBindingPropertiesAttribute.cs
- TextRange.cs
- NamedPipeTransportManager.cs
- DependencyProperty.cs
- PathFigureCollection.cs
- ToolBar.cs
- UserPreferenceChangingEventArgs.cs
- Marshal.cs
- Calendar.cs
- StylusTip.cs
- AutomationProperty.cs
- login.cs
- IisTraceWebEventProvider.cs
- XmlAttributeAttribute.cs
- peernodeimplementation.cs
- CodeSnippetStatement.cs
- SiteMapNodeItem.cs
- Activity.cs
- AsyncResult.cs
- BitmapSourceSafeMILHandle.cs
- PreviewKeyDownEventArgs.cs
- Directory.cs
- ParenthesizePropertyNameAttribute.cs
- AsmxEndpointPickerExtension.cs
- SortQuery.cs
- ReservationNotFoundException.cs
- ArrangedElementCollection.cs
- TemplateManager.cs
- ActiveDocumentEvent.cs
- UIPermission.cs
- IPHostEntry.cs
- serverconfig.cs
- ISessionStateStore.cs
- DataServiceRequestArgs.cs
- DataRowComparer.cs
- MulticastDelegate.cs
- SqlProviderServices.cs
- MediaCommands.cs
- GrammarBuilderWildcard.cs
- SerialReceived.cs
- FormViewModeEventArgs.cs
- SecurityException.cs
- XamlSerializerUtil.cs
- _Events.cs
- X509ChainElement.cs
- OdbcUtils.cs
- ClientEventManager.cs
- ContractMethodParameterInfo.cs
- ArcSegment.cs
- DbConnectionFactory.cs
- X509ChainElement.cs
- StorageModelBuildProvider.cs
- SafeNativeMemoryHandle.cs
- ExtenderProvidedPropertyAttribute.cs
- ConfigurationStrings.cs
- InternalDuplexBindingElement.cs
- XPathParser.cs
- counter.cs
- BookmarkOptionsHelper.cs
- ObjectTag.cs
- IdentityModelStringsVersion1.cs
- GridViewActionList.cs
- TranslateTransform3D.cs
- ScrollChrome.cs
- Geometry3D.cs
- Nullable.cs
- PipelineModuleStepContainer.cs
- IDReferencePropertyAttribute.cs
- BasicCellRelation.cs
- InputMethodStateTypeInfo.cs
- Attributes.cs
- FontNamesConverter.cs
- ContainerSelectorGlyph.cs
- CodeIndexerExpression.cs
- UpWmlMobileTextWriter.cs
- HttpHandlerAction.cs
- BuildProvider.cs
- JapaneseCalendar.cs
- GeneralTransform.cs
- TextAnchor.cs
- TeredoHelper.cs
- MultiBindingExpression.cs
- TypeSystem.cs
- XmlNamespaceMappingCollection.cs
- Tablet.cs
- DuplexChannel.cs
- GridViewColumn.cs
- NestedContainer.cs
- _NTAuthentication.cs
- bindurihelper.cs