Главная страница
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.029 c
1-1110039565
Leeechhhh
2005-03-05 19:19
2005.03.20
Чайниковский вопрос, хм, как получить системное время


1-1110174925
smok_red
2005-03-07 08:55
2005.03.20
Запрет на появление дубликата дочернего окна в MDI приложение


6-1105396413
klyonov
2005-01-11 01:33
2005.03.20
Интернет-радио


14-1109590687
AlexG
2005-02-28 14:38
2005.03.20
Какую машину покупать?


6-1101368472
Жуков
2004-11-25 10:41
2005.03.20
Сообщения по локальной сети