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
- UniformGrid.cs
- ExpressionsCollectionEditor.cs
- CombinedTcpChannel.cs
- BitmapPalettes.cs
- CorePropertiesFilter.cs
- Aggregates.cs
- ExtenderProvidedPropertyAttribute.cs
- SafeLocalMemHandle.cs
- ToolStripSettings.cs
- HtmlTextArea.cs
- ApplicationInfo.cs
- Exceptions.cs
- StrokeRenderer.cs
- SystemWebCachingSectionGroup.cs
- ViewCellSlot.cs
- DrawingAttributes.cs
- ViewService.cs
- DebugHandleTracker.cs
- DetailsView.cs
- InvocationExpression.cs
- XmlFormatExtensionPrefixAttribute.cs
- WebServiceParameterData.cs
- QueryComponents.cs
- FullTextState.cs
- CodeVariableDeclarationStatement.cs
- GifBitmapEncoder.cs
- XmlSchemaInferenceException.cs
- FreezableCollection.cs
- Util.cs
- RadialGradientBrush.cs
- Cursor.cs
- FieldTemplateFactory.cs
- OleDbFactory.cs
- NamespaceList.cs
- MediaPlayer.cs
- DateTimeOffset.cs
- WindowsFormsHost.cs
- StringAnimationBase.cs
- ConfigurationManagerHelper.cs
- DependencyPropertyDescriptor.cs
- XmlParser.cs
- Pair.cs
- FileIOPermission.cs
- CompositeDesignerAccessibleObject.cs
- SemanticKeyElement.cs
- IISUnsafeMethods.cs
- ThreadStaticAttribute.cs
- RowToParametersTransformer.cs
- TypeResolvingOptionsAttribute.cs
- RealizationDrawingContextWalker.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- WmlListAdapter.cs
- HorizontalAlignConverter.cs
- ColumnHeaderConverter.cs
- WindowsTitleBar.cs
- SoapDocumentServiceAttribute.cs
- prompt.cs
- LoadedEvent.cs
- XmlSerializer.cs
- XmlSchemaChoice.cs
- CalendarButton.cs
- ValidationSummary.cs
- OutOfProcStateClientManager.cs
- PermissionSetTriple.cs
- BinaryWriter.cs
- SelectedCellsCollection.cs
- WpfSharedXamlSchemaContext.cs
- LinqDataSourceHelper.cs
- OperatingSystem.cs
- Msec.cs
- ConsoleCancelEventArgs.cs
- SurrogateChar.cs
- PathFigureCollection.cs
- OwnerDrawPropertyBag.cs
- CellNormalizer.cs
- DataServiceException.cs
- Polygon.cs
- SecondaryViewProvider.cs
- BindingMAnagerBase.cs
- Queue.cs
- DesignerActionService.cs
- PaintEvent.cs
- HttpProfileGroupBase.cs
- Selection.cs
- PropertyCollection.cs
- WsrmMessageInfo.cs
- SQLString.cs
- Label.cs
- ClientEventManager.cs
- ApplyImportsAction.cs
- HelpProvider.cs
- HtmlForm.cs
- InstanceNormalEvent.cs
- RegexWorker.cs
- EdmItemError.cs
- Span.cs
- UriTemplateHelpers.cs
- CodeBlockBuilder.cs
- PackageFilter.cs
- TextBox.cs