|
Вставка произвольной строки в выборку SQL (Firebird)
|
|||
---|---|---|---|
#18+
Здравствуйте, пните в нужную сторону пожалуйста, самому ничего красивого не придумать. Задача: Вставить в выборку SQL (СУБД Firebird) произвольную строку. Пример из задачи: 12:00-12:30 Подъем - из бд Свободное время (30 мин.) - произвольная строка высчитана из пред. и след. в случае если есть окно во времени. 13:00-14:00 Завтрак - из бд Желательно это сделать SQL, т.к. работать будет быстро. Или если есть другие варианты, у меня лично ничего красивого не вышло. Использую Delphi + DBGrid + Fib. С добавлением записи в DBGrid или в DataSet ничего не придумал. С использованием вместо DBGrid обычного грида или ListView - ужасно некрасиво перерисовывается по таймеру (раз в 3 секунды). ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 21:37 |
|
Вставка произвольной строки в выборку SQL (Firebird)
|
|||
---|---|---|---|
#18+
offsitesС использованием вместо DBGrid обычного грида или ListView - ужасно некрасиво перерисовывается по таймеру (раз в 3 секунды). А ты во-первых, по таймеру-то не перерисовывай. Только когда необходимо. А во-вторых, старое содержимое не стирай, перерисовывай только изменившиеся ячейки. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 22:41 |
|
Вставка произвольной строки в выборку SQL (Firebird)
|
|||
---|---|---|---|
#18+
offsites, поскольку кроме указанных двух строк в БД (в этом интервале времени) нет, мне кажется, что задача сводится к втыканию "случайной строки" в кэш датасета между указанными строками. А значит, к SQL не имеет отношения. Иначе я не очень понимаю, как можно "взять" "случайную" строку из БД, которой там нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 23:01 |
|
Вставка произвольной строки в выборку SQL (Firebird)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovА ты во-первых, по таймеру-то не перерисовывай. Только когда необходимо. А во-вторых, старое содержимое не стирай, перерисовывай только изменившиеся ячейки. Спасибо, учту! По поводу SQL запроса, думал что можно как-то так хитрО: IF freetime BETWEEN Row.Before AND Row.Afger THEN INSERT VITRUAL RECORD SET VALUES ('HelloWorld!', null) :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2015, 03:27 |
|
Вставка произвольной строки в выборку SQL (Firebird)
|
|||
---|---|---|---|
#18+
offsites, ну и фантазии. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2015, 09:29 |
|
Вставка произвольной строки в выборку SQL (Firebird)
|
|||
---|---|---|---|
#18+
offsites, крайне рекомендую прочесть документацию на предмет: 1.Функции работы с датой и временем2. Код: sql 1.
3. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
С датой и временем можно работать как с обычной скалярной величиной, где единицей являются сутки. Одна секунда ~0.00069444 суток. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2015, 09:51 |
|
Вставка произвольной строки в выборку SQL (Firebird)
|
|||
---|---|---|---|
#18+
offsitesIF freetime BETWEEN Row.Before AND Row.Afger THEN INSERT VITRUAL RECORD SET VALUES ('HelloWorld!', null) :) Это SUSPEND внутри хранимой процедуры. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Если очень сильно захотеть, то можно и одним запросом. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2015, 11:01 |
|
Вставка произвольной строки в выборку SQL (Firebird)
|
|||
---|---|---|---|
#18+
afgm, За идею спасибо, похоже на то что может выйти. Буду пробовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2015, 13:40 |
|
Вставка произвольной строки в выборку SQL (Firebird)
|
|||
---|---|---|---|
#18+
DBConstructorС датой и временем можно работать как с обычной скалярной величиной, где единицей являются сутки. Одна секунда ~0.00069444 суток. Прошу прощения за опечатку. Конечно же имелась в виду одна минута (1/(24*60)) ~0.00069444 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2015, 13:51 |
|
|
start [/forum/topic.php?fid=40&tid=1562416]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
41ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 167ms |
0 / 0 |