コード例 #1
0
 private System.Data.Common.UnsafeNativeMethods.ICommandWithParameters ICommandWithParameters()
 {
     Bid.Trace("<oledb.IUnknown.QueryInterface|API|OLEDB|command> %d#, ICommandWithParameters\n", this.ObjectID);
     System.Data.Common.UnsafeNativeMethods.ICommandWithParameters parameters = this._icommandText as System.Data.Common.UnsafeNativeMethods.ICommandWithParameters;
     if (parameters == null)
     {
         throw ODB.NoProviderSupportForParameters(this._connection.Provider, null);
     }
     return(parameters);
 }
コード例 #2
0
        private void ApplyParameterBindings(System.Data.Common.UnsafeNativeMethods.ICommandWithParameters commandWithParameters, tagDBPARAMBINDINFO[] bindInfo)
        {
            IntPtr[] rgParamOrdinals = new IntPtr[bindInfo.Length];
            for (int i = 0; i < rgParamOrdinals.Length; i++)
            {
                rgParamOrdinals[i] = (IntPtr)(i + 1);
            }
            Bid.Trace("<oledb.ICommandWithParameters.SetParameterInfo|API|OLEDB> %d#\n", this.ObjectID);
            OleDbHResult result = commandWithParameters.SetParameterInfo((IntPtr)bindInfo.Length, rgParamOrdinals, bindInfo);

            Bid.Trace("<oledb.ICommandWithParameters.SetParameterInfo|API|OLEDB|RET> %08X{HRESULT}\n", result);
            if (result < OleDbHResult.S_OK)
            {
                this.ProcessResults(result);
            }
        }
コード例 #3
0
        private void CreateAccessor()
        {
            System.Data.Common.UnsafeNativeMethods.ICommandWithParameters commandWithParameters = this.ICommandWithParameters();
            OleDbParameterCollection parameters = this._parameters;

            OleDbParameter[] array = new OleDbParameter[parameters.Count];
            parameters.CopyTo(array, 0);
            Bindings bindings = new Bindings(array, parameters.ChangeID);

            for (int i = 0; i < array.Length; i++)
            {
                bindings.ForceRebind |= array[i].BindParameter(i, bindings);
            }
            bindings.AllocateForAccessor(null, 0, 0);
            this.ApplyParameterBindings(commandWithParameters, bindings.BindInfo);
            System.Data.Common.UnsafeNativeMethods.IAccessor iaccessor = this.IAccessor();
            OleDbHResult hr = bindings.CreateAccessor(iaccessor, 4);

            if (hr < OleDbHResult.S_OK)
            {
                this.ProcessResults(hr);
            }
            this._dbBindings = bindings;
        }