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
- CounterCreationDataCollection.cs
- IriParsingElement.cs
- ObjectKeyFrameCollection.cs
- HelpProvider.cs
- StringAttributeCollection.cs
- TcpWorkerProcess.cs
- BatchWriter.cs
- Compilation.cs
- NameValueFileSectionHandler.cs
- SimpleTextLine.cs
- CrossAppDomainChannel.cs
- OuterGlowBitmapEffect.cs
- SerialPort.cs
- HashAlgorithm.cs
- TrackingWorkflowEventArgs.cs
- MetadataImporter.cs
- PriorityBinding.cs
- FamilyMap.cs
- NavigationProgressEventArgs.cs
- DocumentSequenceHighlightLayer.cs
- ExternalDataExchangeClient.cs
- DataGrid.cs
- SoapFormatter.cs
- ConstraintConverter.cs
- ModelTreeManager.cs
- Color.cs
- WebBrowser.cs
- DataRecordObjectView.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- PaginationProgressEventArgs.cs
- TextEndOfParagraph.cs
- ProtocolsSection.cs
- ItemCollection.cs
- ForeignConstraint.cs
- InstallerTypeAttribute.cs
- DefaultIfEmptyQueryOperator.cs
- Facet.cs
- XmlQualifiedName.cs
- DateTimeOffsetConverter.cs
- DependencyPropertyKind.cs
- WeakKeyDictionary.cs
- ModelPropertyCollectionImpl.cs
- SettingsBase.cs
- ConfigurationProviderException.cs
- DependencyPropertyValueSerializer.cs
- AsynchronousChannelMergeEnumerator.cs
- BufferedConnection.cs
- XsltConvert.cs
- PropertyRecord.cs
- CacheHelper.cs
- PageContent.cs
- XmlNodeChangedEventArgs.cs
- DrawingVisualDrawingContext.cs
- ClickablePoint.cs
- ImageMetadata.cs
- WorkerRequest.cs
- ListViewCommandEventArgs.cs
- Int16Storage.cs
- ConstantSlot.cs
- _WinHttpWebProxyDataBuilder.cs
- GeometryGroup.cs
- EventArgs.cs
- ApplicationActivator.cs
- ThreadExceptionEvent.cs
- TreeViewHitTestInfo.cs
- BooleanStorage.cs
- CharacterShapingProperties.cs
- Tag.cs
- Crc32Helper.cs
- WindowsPen.cs
- SeekStoryboard.cs
- RowToParametersTransformer.cs
- XmlStreamNodeWriter.cs
- Endpoint.cs
- MenuRendererClassic.cs
- HealthMonitoringSectionHelper.cs
- InnerItemCollectionView.cs
- Camera.cs
- FilterEventArgs.cs
- XmlQueryContext.cs
- WriteTimeStream.cs
- CrossAppDomainChannel.cs
- Timeline.cs
- Formatter.cs
- HtmlLink.cs
- Attribute.cs
- RewritingProcessor.cs
- Classification.cs
- HtmlInputSubmit.cs
- MaskedTextProvider.cs
- Match.cs
- SystemWebSectionGroup.cs
- FormatException.cs
- GestureRecognitionResult.cs
- BuildManager.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- EntityDataSourceContextCreatingEventArgs.cs
- BitmapSizeOptions.cs
- RuleDefinitions.cs
- SerTrace.cs