Exemplo n.º 1
0
        private int ExecuteCommandTextForSingleRow(tagDBPARAMS dbParams, out object executeResult)
        {
            Debug.Assert(_executeQuery, "ExecuteNonQuery should always use ExecuteCommandTextForSingleResult");

            if (_connection.SupportIRow(this))
            {
                OleDbHResult hr;
                hr = _icommandText.Execute(ADP.PtrZero, ref ODB.IID_IRow, dbParams, out _recordsAffected, out executeResult);

                if (OleDbHResult.DB_E_NOTFOUND == hr)
                {
                    SafeNativeMethods.Wrapper.ClearErrorInfo();
                    return(ODB.ExecutedIRow);
                }
                else if (OleDbHResult.E_NOINTERFACE != hr)
                {
                    ExecuteCommandTextErrorHandling(hr);
                    return(ODB.ExecutedIRow);
                }
            }
            SafeNativeMethods.Wrapper.ClearErrorInfo();
            return(ExecuteCommandTextForSingleResult(dbParams, out executeResult));
        }