Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.12.17;
Скачать: [xml.tar.bz2];

Вниз

Аналог периодического реквизита в Delphi   Найти похожие ветки 

 
Dmitry_Chernov   (2006-10-10 11:54) [0]

Вопрост такой, как реализовать аналог периодического реквизита в Delphi "малой кровью"? Может у вас есть информация по данному вопросу?


 
Stanislav ©   (2006-10-10 12:15) [1]

Dmitry_Chernov   (10.10.06 11:54)  
А что это?


 
ЮЮ ©   (2006-10-10 12:15) [2]

Items
 Id
 Name
 ,,,

ItemValues
 Id
 Item
 Value
 DateFrom
 DateTo - заполнял бы триггером, чтобы проще было находиить ту запись, что соответстует нужной дате

З.Ы. Только при чем здесь Delphi


 
Dmitry_Chernov   (2006-10-10 12:27) [3]


> З.Ы. Только при чем здесь Delphi

Это надо на дельфи реализовать....


> ItemValues  Id  Item  Value  DateFrom  DateTo

Примерно так я и думаю, но это не так удобно как реализовано в 1С.
Спрашиваю я потому, что наверняка кто-то реализовывал механизм похожий.


 
ЮЮ ©   (2006-10-10 12:32) [4]

И как же это реализовано в 1С ?


 
Dmitry_Chernov   (2006-10-10 12:33) [5]

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


 
ЮЮ ©   (2006-10-10 12:39) [6]

Это не "реализация", а пользовательский интерфейс.
Допустим, не имея доступа к таблице напрямую а через х/п с параметром DateTime имеешь то же самое.


 
Dmitry_Chernov   (2006-10-11 04:08) [7]

эх... этот бы пользовательский интерфейс да в мою реализацию :)

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


 
ЮЮ ©   (2006-10-11 06:31) [8]

Ну и в чем проблема?

Select t.*, a.Value
FROM
 TableWithPerodicalAttr t
 LEFT PerodicalAttrTable a ON t.DateAttr BETWEEN a.DateFrom AND a.DateTo  

В данном случае актуальность определяется полем .DateAttr в таблице TableWithPerodicalAttr

Select t.*, a.Value
FROM
 TableWithPerodicalAttr t
 LEFT PerodicalAttrTable a ON :DateAttr BETWEEN a.DateFrom AND a.DateTo  

В данном случае параметр :DateAttr задается пользователем перед открытием НД


 
Dmitry_Chernov   (2006-10-11 11:31) [9]

Все это хорошо если одно два таких поле, а если их много... на каждое поле нужно создавать отдельную таблицу...

Нельзя ли дату актуальности хранить в том же поле что и само значение?


 
Sergey13 ©   (2006-10-11 11:39) [10]

> Нельзя ли дату актуальности хранить в том же поле что и само значение?

Это как?

С такими желаниями тебе наверное надо в объектные БД смотреть - может там это есть.


 
ЮЮ ©   (2006-10-11 12:03) [11]


> на каждое поле нужно создавать отдельную таблицу

Можно и в одной, добавь поле
Attr в PerodicalAttrTable, униапльное для каждого атрибута и

TableWithPerodicalAttr t
LEFT PerodicalAttrTable a1 ON (a1.attr = 1) AND ...
LEFT PerodicalAttrTable a2 ON (a2.attr = 2) AND ...



Страницы: 1 вся ветка

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

Наверх





Память: 0.47 MB
Время: 0.042 c
2-1164540980
doncova1
2006-11-26 14:36
2006.12.17
Как в DBGrid изменить высоту строк


15-1164305994
default
2006-11-23 21:19
2006.12.17
Дейт "Введение в системы баз данных"


1-1162221405
Ozzy
2006-10-30 18:16
2006.12.17
как отключить beep при вводе Enter в текстовое поле


15-1164522579
qwerty199191
2006-11-26 09:29
2006.12.17
Большая нагрузка


15-1163250575
poganka
2006-11-11 16:09
2006.12.17
ISAPI в Delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский