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
- DesignDataSource.cs
- PerformanceCounterPermission.cs
- FormsAuthenticationModule.cs
- SafeProcessHandle.cs
- FileChangesMonitor.cs
- SoapFaultCodes.cs
- WindowsStreamSecurityUpgradeProvider.cs
- OneToOneMappingSerializer.cs
- CodeAttributeArgumentCollection.cs
- SamlAssertionKeyIdentifierClause.cs
- ScaleTransform.cs
- CFGGrammar.cs
- TokenCreationException.cs
- SqlDataSourceCustomCommandEditor.cs
- SharedDp.cs
- Point.cs
- VirtualDirectoryMapping.cs
- Solver.cs
- CalendarDataBindingHandler.cs
- dsa.cs
- SHA1CryptoServiceProvider.cs
- RepeaterItemEventArgs.cs
- HuffmanTree.cs
- BamlResourceSerializer.cs
- EventOpcode.cs
- InputLanguageSource.cs
- TextView.cs
- CompilerErrorCollection.cs
- StrongNameKeyPair.cs
- TrustLevelCollection.cs
- TextDecorationCollection.cs
- EmptyReadOnlyDictionaryInternal.cs
- DataColumn.cs
- BuildResultCache.cs
- DataTemplateKey.cs
- TextStore.cs
- SecurityUniqueId.cs
- RectAnimationUsingKeyFrames.cs
- FunctionImportMapping.cs
- OracleEncoding.cs
- odbcmetadatafactory.cs
- ApplicationProxyInternal.cs
- TreeNodeCollection.cs
- Compiler.cs
- ServiceContractDetailViewControl.cs
- TemplateApplicationHelper.cs
- XmlText.cs
- GPRECTF.cs
- xmlformatgeneratorstatics.cs
- OutOfProcStateClientManager.cs
- ValidateNames.cs
- RoleGroup.cs
- EmptyEnumerator.cs
- DesignerAutoFormatCollection.cs
- IntSecurity.cs
- AuthenticationConfig.cs
- ZoneButton.cs
- ReferencedType.cs
- XMLUtil.cs
- SqlNotificationRequest.cs
- RealizedColumnsBlock.cs
- ThreadLocal.cs
- TypePresenter.xaml.cs
- ConnectionString.cs
- ExpressionBuilder.cs
- LogWriteRestartAreaState.cs
- ColumnClickEvent.cs
- MLangCodePageEncoding.cs
- DuplicateWaitObjectException.cs
- FrameworkPropertyMetadata.cs
- InputBuffer.cs
- PrintDialogDesigner.cs
- Wizard.cs
- CompModSwitches.cs
- GlyphShapingProperties.cs
- UserPreferenceChangedEventArgs.cs
- AlternateView.cs
- TextDecorationCollectionConverter.cs
- KeyConverter.cs
- CompositeDataBoundControl.cs
- StateDesigner.CommentLayoutGlyph.cs
- ElementUtil.cs
- ButtonAutomationPeer.cs
- OletxTransactionHeader.cs
- XmlBinaryReader.cs
- BitmapSourceSafeMILHandle.cs
- EdmConstants.cs
- Timeline.cs
- GradientBrush.cs
- WindowsFont.cs
- localization.cs
- TextPenaltyModule.cs
- QueryOutputWriter.cs
- MaskedTextBoxDesigner.cs
- Int32Rect.cs
- RawStylusSystemGestureInputReport.cs
- SimpleHandlerBuildProvider.cs
- LoadRetryAsyncResult.cs
- basecomparevalidator.cs
- XPathScanner.cs