Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];




Вниз

CalcFields 


a_a_k   (2002-03-15 15:59) [0]

В DBGrid-е отображаются все поля бд кроме одного. Неотображаемое поле может принимать одно из 4 возможных значений. Надо добавить в DBGrid ещё 4 поля типа Boolean (соответствующие возможным значениям) так, чтобы заполнялось только одно из них (причём было заполнено обязательно). И ещё чтобы все это было можно редактировать. Если можно, опишите, пожалуйста, все поподробнее.



Val   (2002-03-15 16:11) [1]

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



a_a_k   (2002-03-15 16:14) [2]

то есть в DBGrid-е через вычисляемые поля никак нальзя изменить бд?



Val   (2002-03-15 16:18) [3]

можно подробнее задачу? возможно есть другой подход



a_a_k   (2002-03-15 16:29) [4]

Надо чтобы в одном из этих полей ставились галки, причём галка ставилась только в одном поле и обязательно была. А название поля где галка стоит записывалось только в одно поле бд
Другой подход есть - сделать в бд 4 поля вместо 1, но так делать нельзя (директивы руководства).



Val   (2002-03-15 16:35) [5]

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



a_a_k   (2002-03-15 16:42) [6]

Надо чтобы таблица подсчёта голосов выглядела так
вопрос-за-против-возд-недейств,
а бд так:
вопрос-результат.



Val   (2002-03-15 16:47) [7]

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



Lusha   (2002-03-15 16:50) [8]

Осмелюсь предложить TQuery в режиме CachedUpdates

Запрос при этом будет такой, например

SELECT
Field1,
CAST((Field1 - 1) AS BOOLEAN) As CHECK1,
CAST((Field1 - 2) AS BOOLEAN) As CHECK2,
CAST((Field1 - 3) AS BOOLEAN) As CHECK3,
CAST((Field1 - 4) AS BOOLEAN) As CHECK4
FROM Table1

Значения правда будут инверсными. но это не беда. :)
В Query обработчик на OnUpdateRecord и все дела.

Удачи




a_a_k   (2002-03-15 16:53) [9]

Можно так сделать, но т. к. объём вводимой информации будет очень большим, а забить данные надо как можно быстрее, то для быстроты ввода нужны именно 4 колонки. Так поставило задачу начальство. Одна колонка с выпадающим списком уже была - сказали переделать



Val   (2002-03-15 16:58) [10]

есть вариант сделайть в виде формы с чекбоксами, а грид для отображения.



Lusha   (2002-03-15 16:58) [11]

А я ничего про выпадающие списки не говорил... :(
Я просто предлагаю вариант создания в НД четырех редактируемых колонок типа BOOLEAN при наличии в БД только одной типа INTEGER. А также пути их редакции...



Val   (2002-03-15 17:00) [12]

>Lusha © (15.03.02 16:58)
я ничего про выпадающие списки не говорил... :(
это скорее мне сообщение :)



a_a_k   (2002-03-15 17:01) [13]

Sorry, Lusha, это я отвечал Val.




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.03 c
6-22779           Андре                 2002-01-23 11:20  2002.04.08  
Socket Error


3-22569           Malder                2002-03-16 13:55  2002.04.08  
Подсчет количества записей


1-22738           Moscower              2002-03-26 19:57  2002.04.08  
Соединение с удаленной базой данных


1-22665           ola                   2002-03-28 13:36  2002.04.08  
ApplicationEvents!!!!!


4-22894           BDRON                 2002-02-05 21:17  2002.04.08  
Запустить две программы подряд.