OdbcParameterCollection.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Data / System / Data / Odbc / OdbcParameterCollection.cs / 1305376 / OdbcParameterCollection.cs

                            //------------------------------------------------------------------------------ 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// [....] 
// [....]
//----------------------------------------------------------------------------- 
 
namespace System.Data.Odbc {
 
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data; 
    using System.Data.Common;
    using System.Data.ProviderBase; 
    using System.Diagnostics; 
    using System.Runtime.InteropServices;
 
    [
    Editor("Microsoft.VSDesigner.Data.Design.DBParametersEditor, " + AssemblyRef.MicrosoftVSDesigner, "System.Drawing.Design.UITypeEditor, " + AssemblyRef.SystemDrawing),
    ListBindable(false)
    ] 
    public sealed partial class OdbcParameterCollection : DbParameterCollection {
        private bool _rebindCollection;   // The collection needs to be (re)bound 
 
        private static Type ItemType = typeof(OdbcParameter);
 
        internal OdbcParameterCollection() : base() {
        }

        internal bool RebindCollection { 
            get { return _rebindCollection; }
            set { _rebindCollection = value; } 
        } 

        [ 
        Browsable(false),
        DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
        ]
        new public OdbcParameter this[int index] { 
            get {
                return (OdbcParameter)GetParameter(index); 
            } 
            set {
                SetParameter(index, value); 
            }
        }

        [ 
        Browsable(false),
        DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) 
        ] 
        new public OdbcParameter this[string parameterName] {
            get { 
                 return (OdbcParameter)GetParameter(parameterName);
            }
            set {
                 SetParameter(parameterName, value); 
            }
        } 
 
        public OdbcParameter Add(OdbcParameter value) {
            // MDAC 59206 
            Add((object)value);
            return value;
            }
 
        [ EditorBrowsableAttribute(EditorBrowsableState.Never)]
        [ ObsoleteAttribute("Add(String parameterName, Object value) has been deprecated.  Use AddWithValue(String parameterName, Object value).  http://go.microsoft.com/fwlink/?linkid=14202", false) ] // 79027 
        public OdbcParameter Add(string parameterName, object value) { 
            // MDAC 59206
            return Add(new OdbcParameter(parameterName, value)); 
            }

        public OdbcParameter AddWithValue(string parameterName, object value) {
            // MDAC 79027 
            return Add(new OdbcParameter(parameterName, value));
            } 
 
        public OdbcParameter Add(string parameterName, OdbcType odbcType) {
            return Add(new OdbcParameter(parameterName, odbcType)); 
            }

        public OdbcParameter Add(string parameterName, OdbcType odbcType, int size) {
            return Add(new OdbcParameter(parameterName, odbcType, size)); 
            }
 
        public OdbcParameter Add(string parameterName, OdbcType odbcType, int size, string sourceColumn) { 
            return Add(new OdbcParameter(parameterName, odbcType, size, sourceColumn));
            } 

        public void AddRange(OdbcParameter[] values) {
            // V1.2.3300
            AddRange((Array)values); 
            }
 
        // Walks through the collection and binds each parameter 
        //
        internal void Bind(OdbcCommand command, CMDWrapper cmdWrapper, CNativeBuffer parameterBuffer){ 
            for(int i = 0; i < Count; ++i) {
                this[i].Bind(cmdWrapper.StatementHandle, command, checked((short)(i+1)), parameterBuffer, true);
            }
            _rebindCollection = false; 
        }
 
        internal int CalcParameterBufferSize(OdbcCommand command){ 
            // Calculate the size of the buffer we need
            int parameterBufferSize = 0; 

            for(int i = 0; i < Count; ++i) {
                if (_rebindCollection) {
                    this[i].HasChanged = true; 
                }
                this[i].PrepareForBind(command, (short)(i+1), ref parameterBufferSize); 
 
                parameterBufferSize = (parameterBufferSize + (IntPtr.Size-1)) & ~(IntPtr.Size-1);          // align buffer;
            } 
            return parameterBufferSize;
        }

        // Walks through the collection and clears the parameters 
        //
        internal void ClearBindings () { 
            for(int i = 0; i < Count; ++i) { 
                this[i].ClearBinding();
            } 
        }

        override public bool Contains(string value) { // WebData 97349
            return (-1 != IndexOf(value)); 
        }
 
        public bool Contains(OdbcParameter value) { 
            return (-1 != IndexOf(value));
        } 

        public void CopyTo(OdbcParameter[] array, int index) {
            CopyTo((Array)array, index);
        } 

        private void OnChange() { 
            _rebindCollection = true; 
        }
 
        internal void GetOutputValues (CMDWrapper cmdWrapper) {
            // mdac 88542 - we will not read out the parameters if the collection has changed
            if (!_rebindCollection) {
                CNativeBuffer parameterBuffer = cmdWrapper._nativeParameterBuffer; 
                for(int i = 0; i < Count; ++i) {
                    this[i].GetOutputValue(parameterBuffer); 
                } 
            }
        } 

        public int IndexOf(OdbcParameter value) {
            return IndexOf((object)value);
        } 

        public void Insert(int index, OdbcParameter value) { 
            Insert(index, (object)value); 
        }
 
        public void Remove(OdbcParameter value) {
            Remove((object)value);
        }
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------ 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// [....] 
// [....]
//----------------------------------------------------------------------------- 
 
namespace System.Data.Odbc {
 
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data; 
    using System.Data.Common;
    using System.Data.ProviderBase; 
    using System.Diagnostics; 
    using System.Runtime.InteropServices;
 
    [
    Editor("Microsoft.VSDesigner.Data.Design.DBParametersEditor, " + AssemblyRef.MicrosoftVSDesigner, "System.Drawing.Design.UITypeEditor, " + AssemblyRef.SystemDrawing),
    ListBindable(false)
    ] 
    public sealed partial class OdbcParameterCollection : DbParameterCollection {
        private bool _rebindCollection;   // The collection needs to be (re)bound 
 
        private static Type ItemType = typeof(OdbcParameter);
 
        internal OdbcParameterCollection() : base() {
        }

        internal bool RebindCollection { 
            get { return _rebindCollection; }
            set { _rebindCollection = value; } 
        } 

        [ 
        Browsable(false),
        DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
        ]
        new public OdbcParameter this[int index] { 
            get {
                return (OdbcParameter)GetParameter(index); 
            } 
            set {
                SetParameter(index, value); 
            }
        }

        [ 
        Browsable(false),
        DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) 
        ] 
        new public OdbcParameter this[string parameterName] {
            get { 
                 return (OdbcParameter)GetParameter(parameterName);
            }
            set {
                 SetParameter(parameterName, value); 
            }
        } 
 
        public OdbcParameter Add(OdbcParameter value) {
            // MDAC 59206 
            Add((object)value);
            return value;
            }
 
        [ EditorBrowsableAttribute(EditorBrowsableState.Never)]
        [ ObsoleteAttribute("Add(String parameterName, Object value) has been deprecated.  Use AddWithValue(String parameterName, Object value).  http://go.microsoft.com/fwlink/?linkid=14202", false) ] // 79027 
        public OdbcParameter Add(string parameterName, object value) { 
            // MDAC 59206
            return Add(new OdbcParameter(parameterName, value)); 
            }

        public OdbcParameter AddWithValue(string parameterName, object value) {
            // MDAC 79027 
            return Add(new OdbcParameter(parameterName, value));
            } 
 
        public OdbcParameter Add(string parameterName, OdbcType odbcType) {
            return Add(new OdbcParameter(parameterName, odbcType)); 
            }

        public OdbcParameter Add(string parameterName, OdbcType odbcType, int size) {
            return Add(new OdbcParameter(parameterName, odbcType, size)); 
            }
 
        public OdbcParameter Add(string parameterName, OdbcType odbcType, int size, string sourceColumn) { 
            return Add(new OdbcParameter(parameterName, odbcType, size, sourceColumn));
            } 

        public void AddRange(OdbcParameter[] values) {
            // V1.2.3300
            AddRange((Array)values); 
            }
 
        // Walks through the collection and binds each parameter 
        //
        internal void Bind(OdbcCommand command, CMDWrapper cmdWrapper, CNativeBuffer parameterBuffer){ 
            for(int i = 0; i < Count; ++i) {
                this[i].Bind(cmdWrapper.StatementHandle, command, checked((short)(i+1)), parameterBuffer, true);
            }
            _rebindCollection = false; 
        }
 
        internal int CalcParameterBufferSize(OdbcCommand command){ 
            // Calculate the size of the buffer we need
            int parameterBufferSize = 0; 

            for(int i = 0; i < Count; ++i) {
                if (_rebindCollection) {
                    this[i].HasChanged = true; 
                }
                this[i].PrepareForBind(command, (short)(i+1), ref parameterBufferSize); 
 
                parameterBufferSize = (parameterBufferSize + (IntPtr.Size-1)) & ~(IntPtr.Size-1);          // align buffer;
            } 
            return parameterBufferSize;
        }

        // Walks through the collection and clears the parameters 
        //
        internal void ClearBindings () { 
            for(int i = 0; i < Count; ++i) { 
                this[i].ClearBinding();
            } 
        }

        override public bool Contains(string value) { // WebData 97349
            return (-1 != IndexOf(value)); 
        }
 
        public bool Contains(OdbcParameter value) { 
            return (-1 != IndexOf(value));
        } 

        public void CopyTo(OdbcParameter[] array, int index) {
            CopyTo((Array)array, index);
        } 

        private void OnChange() { 
            _rebindCollection = true; 
        }
 
        internal void GetOutputValues (CMDWrapper cmdWrapper) {
            // mdac 88542 - we will not read out the parameters if the collection has changed
            if (!_rebindCollection) {
                CNativeBuffer parameterBuffer = cmdWrapper._nativeParameterBuffer; 
                for(int i = 0; i < Count; ++i) {
                    this[i].GetOutputValue(parameterBuffer); 
                } 
            }
        } 

        public int IndexOf(OdbcParameter value) {
            return IndexOf((object)value);
        } 

        public void Insert(int index, OdbcParameter value) { 
            Insert(index, (object)value); 
        }
 
        public void Remove(OdbcParameter value) {
            Remove((object)value);
        }
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK