private void BeginExecuteQueryCallback(IAsyncResult state) { ExecuteQueryDelegate del = (ExecuteQueryDelegate)state.AsyncState; this._dtResult = del.EndInvoke(state); this.RaiseExecuteStopped(); }
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; }
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>(); }
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>(); }
protected override bool ReleaseHandle() { _delete(handle); _execute = null; _setHints = null; _deleteCursor = null; _addOr = null; return true; }