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
- MsmqChannelFactoryBase.cs
- DataSourceView.cs
- OleDbConnectionFactory.cs
- SkipQueryOptionExpression.cs
- ServicePoint.cs
- ToolStripDropDownClosedEventArgs.cs
- OleDbTransaction.cs
- MailMessageEventArgs.cs
- OleDbCommandBuilder.cs
- ParameterBuilder.cs
- IPHostEntry.cs
- SettingsSection.cs
- ObjectCloneHelper.cs
- ScaleTransform3D.cs
- ISSmlParser.cs
- RightsManagementInformation.cs
- Transform3DCollection.cs
- XmlAttributeProperties.cs
- SoundPlayerAction.cs
- SpeechRecognitionEngine.cs
- SqlVersion.cs
- TextEditorDragDrop.cs
- BooleanConverter.cs
- WindowsTitleBar.cs
- IODescriptionAttribute.cs
- Buffer.cs
- TypeConverterHelper.cs
- SourceFileInfo.cs
- PriorityItem.cs
- XPathParser.cs
- DataKey.cs
- UnitySerializationHolder.cs
- Int32Collection.cs
- EditBehavior.cs
- ImageKeyConverter.cs
- SoapMessage.cs
- ReadOnlyKeyedCollection.cs
- TaskCanceledException.cs
- BooleanExpr.cs
- CodeAccessPermission.cs
- EventListenerClientSide.cs
- BuildProvider.cs
- TraceXPathNavigator.cs
- Vector3DKeyFrameCollection.cs
- TextOnlyOutput.cs
- COAUTHINFO.cs
- CustomError.cs
- HttpProtocolImporter.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- EdmPropertyAttribute.cs
- PropertyMapper.cs
- TextParentUndoUnit.cs
- SystemUdpStatistics.cs
- QilReplaceVisitor.cs
- TextFindEngine.cs
- ClientApiGenerator.cs
- ConfigurationStrings.cs
- activationcontext.cs
- DataGridHeaderBorder.cs
- BlurEffect.cs
- util.cs
- FieldBuilder.cs
- XAMLParseException.cs
- EntityProviderServices.cs
- PerformanceCounterPermissionEntryCollection.cs
- CaseInsensitiveOrdinalStringComparer.cs
- TypeSource.cs
- FullTrustAssembly.cs
- TerminateWorkflow.cs
- FormsAuthenticationUserCollection.cs
- ConfigurationException.cs
- Module.cs
- _SslStream.cs
- SharedPersonalizationStateInfo.cs
- CompressionTracing.cs
- DetailsViewUpdateEventArgs.cs
- DataObjectAttribute.cs
- CheckBoxPopupAdapter.cs
- FontCacheLogic.cs
- VariableQuery.cs
- AddInAdapter.cs
- CorrelationService.cs
- TickBar.cs
- SafeRightsManagementSessionHandle.cs
- SqlConnectionPoolProviderInfo.cs
- BufferedReadStream.cs
- EntityParameter.cs
- DebuggerService.cs
- UrlAuthFailedErrorFormatter.cs
- HtmlInputCheckBox.cs
- FactoryId.cs
- SelectionProviderWrapper.cs
- TogglePatternIdentifiers.cs
- PaperSource.cs
- CleanUpVirtualizedItemEventArgs.cs
- NumberFunctions.cs
- MenuCommand.cs
- TransactionFlowOption.cs
- FileStream.cs
- JapaneseLunisolarCalendar.cs