Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сделать вх. номер? [D6, Paradox]


Viktor1 ©   (2002-04-07 00:28:00) 

Делаю программу регистрации входящих писем, нужно чтобы программа каждому письму присваивала уникальный вх.номер. Так вот к чему этот номер привязать, чтобы по окончанию года вх.номер начинался бы сначала. Может кто видел такой пример, подскажите где. База Paradox, BDE.Спасибо всем.


dnk   (2002-04-07 15:30:00) [1]

Можно таким нехитрым запросом его посчтитать ->

select Max(Nomer)+1 from jurnal.db
where Year = :PY


PY = параметр текущий год


Viktor1   (2002-04-07 12:26:00) [2]

Спасибо, всё понял. Shaman огромное спасибо за пример. Главное принцип остальное дело техники!!!


Shaman   (2002-04-07 10:01:00) [3]

Не используй автоинкрементное поле, а расчитывай номер письма сам. Например

function NewLetterNum(NewDate: TDateTime): Lontint;
var
d, m, y1, y2: Word;
PrevDate: TDateTime;
PrevNum: LongInt;
begin
// Определяем год из даты нового письма
DecodeDate(NewDate, d, m, y1);
// Таблица должна быть отсортирована по дате + номер письма
Table1.IndexFieldNames := "LDate;LNum";
// Определяем номер и дату последнего письма и выделяем из нее год
Table1.Last;
PrevDate := Table1.FieldByName("LDate").AsDateTime;
PrevNum := Table1.FieldByName("LNum").AsInteger;
DecodeDate(PrevDate, d, m, y2);
if y2 < y1 then Result := 1 else Result := PrevNum + 1;
end;


Anatoly Podgoretsky   (2002-04-07 09:04:00) [4]

Привяжи к году, год+nr


Наверх

Титульная страница Поиск, карта сайта Написать письмо