Повреждение циклов события в графический интерфейсах пользователя

Это немного долго для комментария. Вы говорите:

, если имена столбцов базовой таблицы действительно меняются, пользователям представления не придется редактировать свой код

blockquote>

. , Если базовые имена столбцов изменятся, то представление будет недействительным. Код больше не будет работать. Вам все равно придется воссоздать вид.

Если вы хотите обеспечить имена столбцов, вы можете явно создать представление с именами столбцов:

Create view vBook1 (ISBN, Title) AS
    SELECT ISBN, Title
    FROM dbo.tBook;

Обычно я не очень большой поклонник этого подхода - - это может нанести ущерб при добавлении или переупорядочении имен столбцов для представления. Но вы могли бы оценить это.

Обратите внимание, что я удалил ORDER BY и TOP 100 PERCENT. Это хаки, чтобы получить ORDER BY, принятый компилятором SQL Server. Это не означает, что представление гарантированно будет в каком-то определенном порядке.

Это довольно подробно объясняется в документации :

Важно

Предложение ORDER BY используется только для определения строки, возвращаемые предложением TOP или OFFSET в определении представления. Предложение ORDER BY не гарантирует упорядоченные результаты при запросе представления , если только ORDER BY не указан в самом запросе.

BLOCKQUOTE>

17
задан Torsten Marek 24 September 2008 в 00:44
поделиться

3 ответа

Обычно необходимо ответить на входные события в виджете а не изменить события. Это препятствует тому, чтобы этот тип цикла произошел.

  1. Пользовательский вход изменений в виджете
  2. Виджет испускает событие изменения (прокрутите сделанный / входят нажатый / отпуск мыши, и т.д.)
  3. , Контроллер отвечает, переводит для изменения в Модели модели
  4. , испускает Контроллер события
  5. , отвечает, значение изменений в виджете
  6. испускаемое событие изменения Значения, но не слушаемый контроллером
3
ответ дан 30 November 2019 в 14:39
поделиться

Стандартный спокойный способ иметь дело с этим и также то, предложенное в их очень полезном учебном руководстве, должно внести изменение в значение в контроллере, только если новое значение отличается от текущего значения.
Это - способ, которым сигналы имеют семантику valueChanged()

, см. это учебное руководство

5
ответ дан 30 November 2019 в 14:39
поделиться

Флаги для указания на работу updaing. Можно обернуть их в методы как BeginUpdate и EndUpdate.

1
ответ дан 30 November 2019 в 14:39
поделиться
Другие вопросы по тегам:

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