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

Вниз

TimeStamp в MS SQL   Найти похожие ветки 

 
Ярослав   (2005-02-15 20:43) [0]

Подскажите как пользоваться типом поля TimeStamp в MS SQL, вкрнее как сним работать из Delphi. В книге по MS SQL рекомендуют при обновлении записи писать запрос вида:
Update Table1
set field1="aaa"
where ts=:ts
где ts это поля типа TimeStamp.
Но в Delphi у меня не получилось сохранить это поле в какую либо переменную для последующй передачи в качестве параметра.


 
Anatoly Podgoretsky ©   (2005-02-15 20:52) [1]

В Дельфи они будут представлены как TDateTime


 
Ярослав   (2005-02-16 08:01) [2]

Но в MS SQL TimeStamp не имеют никакого отношения к дате или времени.


 
sniknik ©   (2005-02-16 08:26) [3]

действительно

timestamp
A database-wide unique number that gets updated every time a row gets updated.
...
A nonnullable timestamp column is semantically equivalent to a binary(8) column. A nullable timestamp column is semantically equivalent to a varbinary(8) column.

надо сказать тут они "соригинальначали" в других серверах (IB) это название вполне определенного типа.

в дельфях можно привести в int64 (тоже 8), или к массиву (не так удобно работать)
если не получится пиши, дойду на работу набросаю пример. (но вообшето сложностей не должно возникнуть)


 
Ярослав   (2005-02-17 06:28) [4]

К сожелению не получилось, если не трудно можно выложить пример?


 
Anatoly Podgoretsky ©   (2005-02-17 07:42) [5]

Select * from
Затем щелкаешь два раза по датасет для добавления полей и смотришь тип поля в инспекторе, наверно окажется TLargeInt


 
sniknik ©   (2005-02-17 08:43) [6]

не, не получится, чтобы оно было типа TLargeInt в дельфях (кстати для ADO нет такого .AsInt64) надо в запросе приведение сделать (cast). а так оно типа ftBytes будет
> equivalent to a binary(8)

"прямо" c этого типа будет примерно так  
var
 Per: Int64;
begin
 ADODataSet1.FieldByname("xxx").GetData(@Per);

или
var
 Buf: array[0..7] of bytes;
 Per: Int64 absolute Buf;
begin
 ADODataSet1.FieldByname("xxx").GetData(Buf);

проверь, должно работать, я возможно тоже проверю, потом, может быть (та в какомто случае GetData дает на пару байт больше чем длинна типа, если varbinary то еще и в начале (но это уже точно), если будет с ошибками вываливаться... ну понятно тогда)
опять застал, на работу собираюсь ;о))



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

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

Наверх




Память: 0.48 MB
Время: 0.074 c
8-1101512051
VasRog
2004-11-27 02:34
2005.03.20
Access violation


8-1102160272
Студент_
2004-12-04 14:37
2005.03.20
Идентичное отображение на принтере


1-1109694990
PZ
2005-03-01 19:36
2005.03.20
Управление обозревателем


14-1109269968
Palladin
2005-02-24 21:32
2005.03.20
Построение БД


1-1110295911
xmrz
2005-03-08 18:31
2005.03.20
Delphi 2005 & ASP .NET