Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.30;
Скачать: CL | DM;

Вниз

Хочется чтобы IBserver фиксировал дату и время создания записи.   Найти похожие ветки 

 
kolos_rus ©   (2005-09-16 11:58) [0]

Пишу на DELPHI 7 библиотеку:

library Ib;

uses
 SysUtils,
 Classes;

const
 MSecsPerDay10 = MSecsPerDay * 10;   IBDateDelta = 15018; type
PIBDateTime = ^TIBDateTime;
TIBDateTime = record
   Days, // Date: Days since 17 November 1858
   MSec10: Integer; // Time: Millisecond * 10 since midnigth
end;

{$R *.res}
function ServerDate(var ServerIBDateTime: TIBDateTime): PIBDateTime; cdecl; export;
var
 DateTime: TDateTime;
 DelphiDays: Integer;
begin
 DateTime := Now;
 DelphiDays := Trunc(DateTime);
 with ServerIBDateTime do
   begin
     Days := DelphiDays + IBDateDelta;
     MSec10 := Trunc((DateTime - DelphiDays) * MSecsPerDay10);
   end;
 Result := @ServerIBDateTime;
end;

exports
 ServerDate;
begin
end.

Подключаю к базе UDF

DECLARE EXTERNAL FUNCTION DATETIME
   TIMESTAMP
RETURNS TIMESTAMP FREE_IT
ENTRY_POINT "ServerDate" MODULE_NAME "ib.dll"

Создаю тригер

SET SQL DIALECT 3;
SET NAMES WIN1251;
SET TERM ^ ;
CREATE TRIGGER DVIG_BI0 FOR DVIG
ACTIVE BEFORE INSERT POSITION 0
AS
begin
 /* Trigger text */
 new.data_vvoda = datetime("01.01.1900 10:10");
end
^
SET TERM ; ^

Дату заносит, а вот время нет.


 
Sergey13 ©   (2005-09-16 12:11) [1]

А как ты в тригер "01.01.1900 10:10" передашь?

new.data_vvoda = current_timestamp;
Вроде работает.


 
kolos_rus ©   (2005-09-16 12:18) [2]

Спасибо! Работает!!! Я не знал, что есть встроенная функция.



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

Текущий архив: 2005.10.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.025 c
1-1128582443
Андрон
2005-10-06 11:07
2005.10.30
Как узнать, что объект - наследник какого-то базового типа?


2-1128800289
syte_ser78
2005-10-08 23:38
2005.10.30
Обьявление приватной переменной.


1-1128491589
denmin
2005-10-05 09:53
2005.10.30
Как передать параметр в вызываемую программу?


1-1128335402
Merak
2005-10-03 14:30
2005.10.30
Функция для определения IP


1-1128618673
oleg_SYS
2005-10-06 21:11
2005.10.30
Как заблокировать выключение компьютера?