![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сообщение, результата запроса, убрать [D6, mdb]
YurkaT © (2006-11-14 08:39:00)есть таблица, в которой, ключ. поле, в формате дата,время,
примерно раз в секунду, в базу кое чё записуется...
раз в несколько часов, вываливается, сообщение, о том что такое ключевое, поле уже есть, видать, из-за погрешности таймера, или ado(неважно)...
как убрать что-бы, ето сообщение не показывалось,
оно конечно не критично, но всё же....
кто знает подскажите PLS...
DVM (2006-11-14 13:10:00) [21]
> a в access нету...
Преобразовать дату в число миллисекунд, писать число в базу.
Только все таки изврат это. Есть же нормальный счетчик.
Anatoly Podgoretsky (2006-11-14 13:09:00) [22]> DVM (14.11.2006 12:44:10) [10]
У баз нет такого типа TDateTime
Percent (2006-11-14 13:03:00) [23]В ТDateTime они же есть
В Delphi - есть.
Не факт, что в mdb есть.
Надо документацию читать или проверять.
sniknik (2006-11-14 13:03:00) [24]> Ну писать миллисекунды туда. В ТDateTime они же есть.
a в access нету... (во всяком случае в справке не описаны, и функции типа Now(), Time() в запросах тоже результат без миллисекунд выдают)
менять базу придется. (для нормальной работы... так то можно заменить тип на доубле к примеру, и обработку/приведение делать самостоятельно, но это упариться можно ;)
DVM (2006-11-14 12:44:00) [25]
> Проблема то не в этом, но в течение одной секунды, эти самые
> секунды одинаковы.
Ну писать миллисекунды туда. В ТDateTime они же есть.
Anatoly Podgoretsky (2006-11-14 12:37:00) [26]> DVM (14.11.2006 12:01:08) [8]
Проблема то не в этом, но в течение одной секунды, эти самые секунды одинаковы.
DVM (2006-11-14 12:01:00) [27]
> только не надо писать примерно раз в секунду, ерунда такая
> получается.
Что же это за БД будет, если раз в секунду для нее проблема.
> Percent (14.11.06 11:55) [7]
Единственно правильное решение.
Percent (2006-11-14 11:55:00) [28]1. Добавить автоинкрементное поле.
2. Сделать его (поле) первичным ключом.
3. Забыть о проблеме.
Anatoly Podgoretsky (2006-11-14 11:36:00) [29]> ANB (14.11.2006 10:41:05) [5]
Вполне нормально, только не надо писать примерно раз в секунду, ерунда такая получается.
ANB (2006-11-14 10:41:00) [30]ИМХО - некузяво делать поле даты-времени первичным ключом.
Рамиль (2006-11-14 08:58:00) [31]
> Для записи в БД с частотой 1 сек это будет самый неправильный
> способ, ИМХО.
Зависит базы. Если кроме него в нее никто не пишет и не читает, то вполне нормально:)
Sergey13 (2006-11-14 08:50:00) [32]> [2] Рамиль © (14.11.06 08:46)
> Лучше, конечно, проектировать правильно. Или сделать выборку
> с датой, которую хочешь записать, если выборка не пустая,
> то ничего не писать.
Для записи в БД с частотой 1 сек это будет самый неправильный способ, ИМХО.
Рамиль (2006-11-14 08:46:00) [33]try
MyTable.Append;
...
except
if not {тут проверяем, точно ли эта ошибка} then raise
end
Лучше, конечно, проектировать правильно. Или сделать выборку с датой, которую хочешь записать, если выборка не пустая, то ничего не писать.
Sergey13 (2006-11-14 08:42:00) [34]Обработать исключительную ситуацию в коде, где "в базу кое чё записуется".