private bool IsSqlEditionSupported(string connectionString) { var operation = new DbOperation(connectionString, "SELECT SERVERPROPERTY ( 'EngineEdition' )", _logger); var edition = (int)operation.ExecuteScalar(); return(edition >= SqlEngineEdition.Standard && edition <= SqlEngineEdition.Express); }
private bool IsSqlEditionSupported(string connectionString) { var operation = new DbOperation(connectionString, "SELECT SERVERPROPERTY ( 'EngineEdition' )", _trace); var edition = (int)operation.ExecuteScalar(); return((edition >= SqlEngineEdition.Standard && edition <= SqlEngineEdition.Express) || edition == SqlEngineEdition.SqlAzureManagedInstance); }
private void Receive(object state) { var tcs = (TaskCompletionSource <object>)state; if (!_lastPayloadId.HasValue) { var lastPayloadIdOperation = new DbOperation(_connectionString, _maxIdSql, _trace) { TracePrefix = _tracePrefix }; try { _lastPayloadId = (long?)lastPayloadIdOperation.ExecuteScalar(); Queried(); // Complete the StartReceiving task as we've successfully initialized the payload ID tcs.TrySetResult(null); } catch (Exception ex) { tcs.TrySetException(ex); return; } } // NOTE: This is called from a BG thread so any uncaught exceptions will crash the process lock (this) { if (_disposed) { return; } var parameter = _dbProviderFactory.CreateParameter(); parameter.ParameterName = "PayloadId"; parameter.Value = _lastPayloadId.Value; _dbOperation = new ObservableDbOperation(_connectionString, _selectSql, _trace, parameter) { TracePrefix = _tracePrefix }; } _dbOperation.Queried += () => Queried(); _dbOperation.Faulted += ex => Faulted(ex); _dbOperation.Changed += () => { Trace.TraceInformation("{0}Starting receive loop again to process updates", _tracePrefix); _dbOperation.ExecuteReaderWithUpdates(ProcessRecord); }; _dbOperation.ExecuteReaderWithUpdates(ProcessRecord); _trace.TraceWarning("{0}SqlReceiver.Receive returned", _tracePrefix); }