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
- ProcessThread.cs
- VisualTarget.cs
- DataGridViewColumnStateChangedEventArgs.cs
- IntersectQueryOperator.cs
- StrokeNode.cs
- CodeMethodReturnStatement.cs
- CalendarSelectionChangedEventArgs.cs
- Size3D.cs
- SQLDateTimeStorage.cs
- InheritablePropertyChangeInfo.cs
- RepeaterCommandEventArgs.cs
- RadioButtonList.cs
- PocoEntityKeyStrategy.cs
- BulletedList.cs
- SynchronizedInputProviderWrapper.cs
- TickBar.cs
- TemplatePropertyEntry.cs
- TextTreeText.cs
- QilCloneVisitor.cs
- ParserHooks.cs
- StrongNameIdentityPermission.cs
- AsymmetricKeyExchangeFormatter.cs
- MouseEvent.cs
- ComponentCommands.cs
- ProviderConnectionPointCollection.cs
- TextRunCacheImp.cs
- StringCollectionEditor.cs
- Point3DCollectionConverter.cs
- PropertyMetadata.cs
- ToolStripRenderEventArgs.cs
- HwndTarget.cs
- BorderSidesEditor.cs
- DataGridViewTopRowAccessibleObject.cs
- ExpandedWrapper.cs
- EpmContentDeSerializerBase.cs
- SortFieldComparer.cs
- loginstatus.cs
- NativeMethodsCLR.cs
- FileSystemInfo.cs
- hresults.cs
- PageContentCollection.cs
- Argument.cs
- RepeatInfo.cs
- ToolboxItemCollection.cs
- ButtonField.cs
- Geometry3D.cs
- MediaEntryAttribute.cs
- SynchronizedChannelCollection.cs
- MobileErrorInfo.cs
- BulletDecorator.cs
- ReferentialConstraint.cs
- QueryAsyncResult.cs
- SafeHandles.cs
- WebUtil.cs
- UnsafeNativeMethods.cs
- FixedSOMLineRanges.cs
- ProxySimple.cs
- HttpInputStream.cs
- IisTraceListener.cs
- ContainerParagraph.cs
- LexicalChunk.cs
- FileLogRecordHeader.cs
- Tag.cs
- ColorMap.cs
- VisualBasicHelper.cs
- DefinitionBase.cs
- PermissionSetTriple.cs
- PersistenceContextEnlistment.cs
- ListViewDeletedEventArgs.cs
- ReachPageContentSerializerAsync.cs
- FrameworkElement.cs
- basecomparevalidator.cs
- AutomationElement.cs
- ObjectDataSourceEventArgs.cs
- WaitHandle.cs
- Action.cs
- XmlSubtreeReader.cs
- TextTreeInsertElementUndoUnit.cs
- mactripleDES.cs
- SemanticAnalyzer.cs
- InputMethod.cs
- Encoder.cs
- LocalizableAttribute.cs
- RtfControlWordInfo.cs
- WorkflowViewElement.cs
- SqlNamer.cs
- ConstructorNeedsTagAttribute.cs
- OperationParameterInfo.cs
- ButtonBaseAutomationPeer.cs
- HierarchicalDataTemplate.cs
- ListDataHelper.cs
- MouseCaptureWithinProperty.cs
- InputElement.cs
- NewArrayExpression.cs
- DiscoveryDocumentReference.cs
- TextBoxView.cs
- Debug.cs
- XmlArrayItemAttributes.cs
- ServiceMemoryGates.cs
- CodeMemberEvent.cs