private void BeginExecuteQueryCallback(IAsyncResult state)
        {
            ExecuteQueryDelegate del = (ExecuteQueryDelegate)state.AsyncState;

            this._dtResult = del.EndInvoke(state);
            this.RaiseExecuteStopped();
        }
Example #2
0
        public void BeginExecuteQuery()
        {
            ExecuteQueryDelegate del = new ExecuteQueryDelegate(this.DoQueryExec);

            //del.BeginInvoke(this._db, new AsyncCallback(this.BeginExecuteQueryCallback), del);
            del.BeginInvoke(this._dbType, this._cnStr, this._qrStr, this._timeOut, new AsyncCallback(this.BeginExecuteQueryCallback), del);
        }
        public void BeginExecuteQuery()
        {
            ExecuteQueryDelegate del = new ExecuteQueryDelegate(this.DoQueryExec);

            //del.BeginInvoke(this._db, new AsyncCallback(this.BeginExecuteQueryCallback), del);
            del.BeginInvoke(this._connStr, this._qryStr, this._provType, new AsyncCallback(this.BeginExecuteQueryCallback), del);
        }
            /// <summary>
            /// Функция запуска хранимых процедур или текстовых запросов.
            /// В процессе работы вызываются события QueryExecuteStartedEvent и QueryExecuteFinishedEvent
            /// </summary>
            /// <param name="CommandText">Текст команды или имя процедуры</param>
            /// <param name="CommandResultType">Тип возвращаемого результата</param>
            /// <param name="CommandType">Тип команды</param>
            /// <param name="ResultColumnName">Имя колонки с результатом</param>
            /// <param name="CommandTimeOut">Таймаут для команды (в секундах)</param>
            /// <returns>Структура с описанием результата</returns>
            public CommandResult ExecuteQuery(string CommandText, CommandResultTypes CommandResultType, CommandType CommandType, string ResultColumnName, int CommandTimeOut)
            {
                ExecuteQueryDelegate executeQueryDelegate = new ExecuteQueryDelegate(ExecuteQueryWork);
                /// Асинхронный запуск Запроса
                IAsyncResult ar = executeQueryDelegate.BeginInvoke(
                    CommandText, CommandResultType, CommandType, ResultColumnName,CommandTimeOut, null, null);
                /// Событие: запрос начал исполнение
                if (QueryExecuteStartedEvent != null) {
                    QueryExecuteStartedEvent(this, EventArgs.Empty);
                }
                /// Ожидание окончания
                CommandResult cr = executeQueryDelegate.EndInvoke(ar);
                /// Событие: запрос завершил выполнение
                if (QueryExecuteFinishedEvent != null) {
                    QueryExecuteFinishedEvent(this, EventArgs.Empty);
                }

                return cr;
            }
Example #5
0
        public unsafe QueryFunctions(LibraryHandle handle)
        {
            Create = handle.GetUnmanagedDelegate <CreateQueryDelegate>();

            Delete = handle.GetUnmanagedDelegate <DeleteQueryDelegate>();

            Execute      = handle.GetUnmanagedDelegate <ExecuteQueryDelegate>();
            DeleteCursor = handle.GetUnmanagedDelegate <DeleteCursorDelegate>();

            SetHints = handle.GetUnmanagedDelegate <SetHintsDelegate>();
            AddOr    = handle.GetUnmanagedDelegate <AddOrDelegate>();

            CursorResult = handle.GetUnmanagedDelegate <CursorResultDelegate>();

            NewBuffer      = handle.GetUnmanagedDelegate <QueryFunctions.NewBufferDelegate>();
            DeleteBuffer   = handle.GetUnmanagedDelegate <QueryFunctions.DeleteBufferDelegate>();
            BufferSize     = handle.GetUnmanagedDelegate <GetSizeDelegate>();
            BufferToString = handle.GetUnmanagedDelegate <ToStringDelegate>();
        }
Example #6
0
        public QueryHandle(Collection collection, byte[] queryAsBson)
            : base(true)
        {
            Collection = collection;
            var database = collection.Database;
            var libraryHandle = database.Library.LibraryHandle;

            var createQuery = libraryHandle.GetUnmanagedDelegate<CreateQueryDelegate>();

            handle = createQuery(database.DatabaseHandle, queryAsBson);

            if (IsInvalid)
            {
                EjdbException.FromDatabase(database, "Failed to create query");
            }

            _delete = libraryHandle.GetUnmanagedDelegate<DeleteQueryDelegate>();

            _execute = libraryHandle.GetUnmanagedDelegate<ExecuteQueryDelegate>();
            _deleteCursor = libraryHandle.GetUnmanagedDelegate<DeleteCursorDelegate>();

            _setHints = libraryHandle.GetUnmanagedDelegate<SetHintsDelegate>();
            _addOr = libraryHandle.GetUnmanagedDelegate<AddOrDelegate>();
        }
Example #7
0
        protected override bool ReleaseHandle()
        {
            _delete(handle);

            _execute = null;
            _setHints = null;
            _deleteCursor = null;
            _addOr = null;

            return true;
        }