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
- httpapplicationstate.cs
- RequestNavigateEventArgs.cs
- Control.cs
- StylusCaptureWithinProperty.cs
- Line.cs
- PropertyGrid.cs
- TableLayoutStyle.cs
- DbConnectionInternal.cs
- Transform3D.cs
- TextTabProperties.cs
- NamespaceDisplay.xaml.cs
- Point3DIndependentAnimationStorage.cs
- XmlUnspecifiedAttribute.cs
- SizeConverter.cs
- FilteredAttributeCollection.cs
- NumericPagerField.cs
- SecurityChannelListener.cs
- LambdaCompiler.Unary.cs
- AssemblyFilter.cs
- DefaultTextStoreTextComposition.cs
- EventLogTraceListener.cs
- SqlCrossApplyToCrossJoin.cs
- TextSerializer.cs
- AssociationTypeEmitter.cs
- CasesDictionary.cs
- XmlTextAttribute.cs
- AmbientValueAttribute.cs
- HttpRequestTraceRecord.cs
- ScrollProviderWrapper.cs
- PieceNameHelper.cs
- SecurityKeyIdentifierClause.cs
- ISO2022Encoding.cs
- LoginNameDesigner.cs
- RegexCode.cs
- RequestDescription.cs
- ExpressionEditor.cs
- Positioning.cs
- SQLBinary.cs
- FillErrorEventArgs.cs
- UrlUtility.cs
- NavigateEvent.cs
- TextEditorContextMenu.cs
- ScriptControl.cs
- DynamicDocumentPaginator.cs
- SQLInt32.cs
- Closure.cs
- EpmCustomContentDeSerializer.cs
- HttpException.cs
- ParenthesizePropertyNameAttribute.cs
- SimpleHandlerFactory.cs
- NetCodeGroup.cs
- TreeNode.cs
- GlobalEventManager.cs
- XmlSchemaInfo.cs
- HWStack.cs
- EntityViewGenerationAttribute.cs
- ContourSegment.cs
- EntityTypeEmitter.cs
- RolePrincipal.cs
- sqlinternaltransaction.cs
- ScaleTransform3D.cs
- Pick.cs
- ListViewItemMouseHoverEvent.cs
- RequiredAttributeAttribute.cs
- CopyOfAction.cs
- EntryIndex.cs
- Expander.cs
- ExtensionFile.cs
- SelectionEditingBehavior.cs
- CircleHotSpot.cs
- Paragraph.cs
- RadioButtonStandardAdapter.cs
- WindowCollection.cs
- BaseTemplateBuildProvider.cs
- AuthorizationContext.cs
- ImmComposition.cs
- Debug.cs
- ConstrainedGroup.cs
- FileChangeNotifier.cs
- AsyncCompletedEventArgs.cs
- SafeSecurityHandles.cs
- SpellerStatusTable.cs
- GenerateTemporaryTargetAssembly.cs
- RepeatBehaviorConverter.cs
- FlowLayoutPanel.cs
- WindowsScrollBarBits.cs
- SubpageParaClient.cs
- Compiler.cs
- thaishape.cs
- SetterBaseCollection.cs
- AddInProcess.cs
- HttpConfigurationContext.cs
- PropertyTabAttribute.cs
- ResolvedKeyFrameEntry.cs
- XPathMultyIterator.cs
- TableDetailsCollection.cs
- FixedSOMImage.cs
- CreateUserErrorEventArgs.cs
- HttpModuleCollection.cs
- ManagementInstaller.cs