Столкнулся со следующей проблемой в SQL & DELPHI: для поля "kod" типа INT(уникальный индификатор) генерирую значение следуюшим образом:
--------------------------------------
//снимаю номер следующей записи
TMP_ID:=S_PROF.TABLE_SPR_P.RecNo+1;
DATE_TMP:=DATETOSTR(DATE); кидаю в текстовый формат текушую дату и время
TIME_TMP:=TIMETOSTR(TIME);
//убираю из текущей даты "точки", т.е например дата "02.01.06", получается "020106"
D_1:=COPY(DATE_TMP,1,2); //день
D_2:=COPY(DATE_TMP,4,2); //месяц
D_3:=COPY(DATE_TMP,7,4); //год
//таже самая хрень для времени, т.е например "13:12:54" получается "131254"
//это услови вставил так как время хранится в 7(7:00:00) символах , и 8(13:00:00) естественно
IF LENGTH(TIME_TMP)=8 THEN
BEGIN
T_1:=COPY(TIME_TMP,1,2); //часы
T_2:=COPY(TIME_TMP,4,2); //минуты
T_3:=COPY(TIME_TMP,7,2); //секунды
END;
IF LENGTH(TIME_TMP)=7 THEN
BEGIN
//поэтому здесь ноль и прилепляю, что бы нишло смишение по символам
// здесь к примеру "7:00:00" становится как "07:00:00" и всё нормально разбивается
T_1:=COPY('0'+TIME_TMP,1,2); //часы
T_2:=COPY('0'+TIME_TMP,4,2); //минуты
T_3:=COPY('0'+TIME_TMP,7,2); //секунды
END;
//формирую сам код уникальный
KOD:=STRTOINT('4'+D_1+D_2+D_3+T_1+T_2+T_3+INTTOSTR(TMP_ID));
// здесь "4" это индификатор базы
---------------------------------------------------------
для примера генерируется следуюший индификатор
-"4"-код таблицы
-"01.02.06" текущая дата
-"12:00:00" текущие время
-"12" номер следующей записи
получается следующий уникальный код "401020612000012"
----------------------------------
так вот проблема состоит в том что...цисло получается сильно длинным , и я немогу записать его в базу.
какие типы в SQL можно задействовать чтобы хранить это целочисленное число (401020612000012)
так что бы и делфи воспринимал этот тип данных.