То, как сохранить “меньший, чем”, равняется и “больше, чем” в базе данных

ОБНОВЛЕНИЕ

Этот подход является безусловно самым легким:

http://www.codeproject.com/KB/dotnet/DebugWinServices.aspx

я оставляю свой исходный ответ ниже для потомства.

Мои сервисы склонны иметь класс, который инкапсулирует Таймер, поскольку я хочу сервис проверить равномерно, существует ли какая-либо работа для него, чтобы сделать.

Мы новый класс и вызов StartEventLoop () во время сервисного запуска. (Этот класс мог легко использоваться из консольного приложения также.)

хороший побочный эффект этого дизайна состоит в том, что аргументы, с которыми Вы настраиваете Таймер, могут использоваться для имения задержки, прежде чем сервис на самом деле начнет работать, так, чтобы у Вас было время для присоединения отладчика вручную.

p.s. , Как присоединить отладчик вручную к рабочему процессу...?

using System;
using System.Threading;
using System.Configuration;    

public class ServiceEventHandler
{
    Timer _timer;
    public ServiceEventHandler()
    {
        // get configuration etc.
        _timer = new Timer(
            new TimerCallback(EventTimerCallback)
            , null
            , Timeout.Infinite
            , Timeout.Infinite);
    }

    private void EventTimerCallback(object state)
    {
        // do something
    }

    public void StartEventLoop()
    {
        // wait a minute, then run every 30 minutes
        _timer.Change(TimeSpan.Parse("00:01:00"), TimeSpan.Parse("00:30:00");
    }
}

Также я раньше делал следующее (уже упомянутый в предыдущих ответах, но с условным компилятором [#if] флаги, чтобы помочь избежать его стреляющий в Сборку конечных версий).

я прекратил делать его этот путь, потому что иногда мы будем забывать создавать в Выпуске и иметь отладчик, прерывают приложение, работающее на клиентской демонстрации (смущающий!).

#if DEBUG
if (!System.Diagnostics.Debugger.IsAttached)
{
    System.Diagnostics.Debugger.Break();
}
#endif

6
задан cafenervosa 30 November 2009 в 22:30
поделиться

4 ответа

Как насчет добавления третьего столбца для уточняющего int?

0 = Меньше
1 = меньше или равно
2 = равно
3 = больше или равно
4 = больше

9
ответ дан 10 December 2019 в 00:39
поделиться

The easiest, is typically to use predefined values for these cases, for example here, a value of 3.0 means 3% whereby 2.99 means "less than 3%".

Since these "Less than" and "More than" values typically only apply at the ends of the range, such a convention allows handling all filtering and ordering with a single field value,in a standard fashion. The main drawback to this approach is that it implies hard-coding these limit values at the level of the application, for display purposes and such.

The alternative is to introduce a two columns value, with a numeric value and a "qualifier" column which contains a code indicating "exact value" or "Less than" or "more than". While this approach appears to be more generic (and it is, at the level of the display etc.), some hard-coding is often required at the level of the "input".

1
ответ дан 10 December 2019 в 00:39
поделиться

Если вы не хотите разбить данные на 3 поля, например, less_equal_more (varchar) (<. =,> Или текстовые эквиваленты), измерение (deciaml) (3,5 или любой другой уровень вашего точность) и units_of_measurment (varchar) (например, в процентах или абсолютных в милях или метрах - что угодно) - вы должны хранить в varchar. Но я бы разбил ваши данные - облегчить поисковые запросы.

0
ответ дан 10 December 2019 в 00:39
поделиться

Я бы посоветовал хранить ваши данные в виде интервалов, т.е. <3% будет [0,3), 3% станет [3,3] и так далее. Это может занять 4 столбца в вашей базе данных, по одному для каждой конечной точки и один для обозначения того, открыт или закрыт интервал в каждой конечной точке. Сохраняйте числовые данные в числовом формате, чтобы вы могли выполнять с ними арифметические операции, кодируйте значения «открыто» и «закрыто» так, как это лучше всего соответствует вашим требованиям доступа и манипуляции.

0
ответ дан 10 December 2019 в 00:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: