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

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

Тип Date в триггерах [D7, FB 1.5]


Ярослав ©   (2005-08-18 11:10:00) 

Подскажите у меня есть поле типа Date, при запросах в Gride и других контролах отоброжаеться нормально а в триггере я собираю строку куда добавляю значение этого поля:
NEW.STR = NEW.STR || NEW.DATE - к примеру
так вот значение даты в строке оказываеться в таком виде - 2005-08-28
А мне надо 28.08.2005, как это сделать?


}{ander   (2005-08-20 12:27:00) [1]

NEW.STR = NEW.STR || extract(date from NEW.DATE) || '.' || extract(month from NEW.DATE) || '.' || extract(year from NEW.DATE)


Digitman   (2005-08-19 14:43:00) [2]

посмотри на ibase.ru любую подходящую на эту тему ф-цию


Ярослав   (2005-08-19 08:58:00) [3]

А в каком модуле описан тип - IBDateTime, что то я не нашел
И IBDateTimeToDelphiDateTime(ibdt); - где взять


Digitman   (2005-08-18 13:28:00) [4]


> Ярослав   (18.08.05 13:12) [4]


тогда реализуй и подключи UDF, которая будет форматировать зн-е даты так как тебе нужно

function FormatIBDataTime(fmt: PChar; var ibdt: IBDateTime): PChar; cdecl; //free_it
var
 dt: TDateTime;
 tmp: String;
begin
 dt := IBDateTimeToDelphiDateTime(ibdt); //преобразовать IB-дату/время в Делфи-дату/время, подобные ф-ции имеются в любом клиентском IB API
 tmp := FormatDateTime(fmt, dt);
 Result := ib_util_malloc(Result, Length(tmp) + 1);
 Move(PChar(tmp)^, Result^, Length(tmp) + 1);
end;

..

DECLARE EXTERNAL FUNCTION FormatIBDataTime
   FMT CSTRING(255),
   DT DATE
RETURNS CSTRING(255) FREE_IT
ENTRY_POINT 'FormatIBDataTime' MODULE_NAME 'myudf.dll'..

..

NEW.STR = NEW.STR || FormatIBDataTime("dd.mm.yyyy", NEW.DATE);


Desdechado   (2005-08-18 13:22:00) [5]

НА СЕРВЕРЕ


Ярослав   (2005-08-18 13:12:00) [6]

>> Desdechado ©   (18.08.05 13:07) [3]
У меня там все правильно установлено, значит не в этом дело


Desdechado   (2005-08-18 13:07:00) [7]

в региональных настройках ОС


Ярослав   (2005-08-18 12:50:00) [8]

>> Digitman ©   (18.08.05 12:47) [1]
И как это сделать?


Digitman   (2005-08-18 12:47:00) [9]


> как это сделать?


на машине, где работает серверная часть FB, в рег.настройках установить требуемый строковый формат даты, в дан.случае - MM.DD.YYYY


Наверх

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