Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];

Вниз

DateTime   Найти похожие ветки 

 
Ал   (2002-06-20 09:00) [0]

Подскажите пожалуйста
Проблема в следующем:
есть поле типа TDateTime, возможно ли осуществить поиск
(Query.Locate) только вводя дату, без времени??? (т.к. время узнать с точностью до секунды практически невозможно)


 
Turalyon   (2002-06-20 09:20) [1]

При помощи Locate думаю нет...
Можно посоветовать воспользоваться SQL запросом... там можно найти без проблем.


 
Ал   (2002-06-20 12:58) [2]

Turalyon ©:
Спасибо и на этом. Скорее всего придется писать свою
ф-ию перевода в строковый формат, а затем поиска.


 
Turalyon   (2002-06-20 13:10) [3]

Зачем... можно сделать так... (щас меня специалисты ругать начнут :))
Делаешь SQL запрос, получаешь ключ твоей записи... а потом Loacate делаешь не по полю со временем (TDateTime), а по ключевому полю. Думаю это не сильно замедлит работу компьютера.


 
Alexandr   (2002-06-20 14:09) [4]

Locate(.....[loPartialKey])
не подойдет?
И искать как стринг.


 
Turalyon   (2002-06-20 14:17) [5]

>Alexandr ©
А Locate разве не полное совпадение ищет??? (Это к тому что с секундами все равно проблеммы будут)


 
Ал   (2002-06-20 15:13) [6]

Turalyon © :
Попробую.Спасибо.


 
Ал   (2002-06-20 15:15) [7]

Alexandr © :
Так не получится.


 
fool   (2002-06-20 16:09) [8]

>Turalyon © А Locate разве не полное совпадение ищет??
Из хелпа:
loCaseInsensitive Key fields and key values are matched without regard to case.
loPartialKey Key values can include only part of the matching key field value; for example, "HAM" would match both "HAMM" and "HAMMER."
Я думаю - понятно, и еще думаю, что Locate подойдет


 
Ал   (2002-06-20 19:57) [9]

fool © :
Это справедливо для поля типа TString (!!!!!!), но никак ни TDate или TDateTime. Попробуй, если не веришь.


 
Alexandr   (2002-06-21 06:08) [10]

а я для кого сказал, что искать не как TdateTime а как string?
в select .....
сделай приведение типа с помощью UDF (если хочешь, дополнительным полем)
А UDF потому что стандартный case тебе в 01-JAN-2001 приведет, а надо в 01.01.2001 если я правильно понял.

А вообще, смысла в Locate особого нет для клиент-сервера: он все-рано индексы не импользует, а использует перебор.
Ну так и напиши свой locate, который будет искать то, и как тебе нужно.


 
Turalyon   (2002-06-21 08:19) [11]

>> Alexandr ©
Из хелпа для TIBCustomDataSet.Locate
...
Locate uses the fastest possible method to locate matching records. If the search fields in KeyFields are indexed and the index is compatible with the specified search options, Locate uses the index. Otherwise Locate creates a filter for the search.
...
Так, что если все же ищем Locate по индексированному полю используются индексы.


 
Alexandr   (2002-06-21 12:08) [12]

Ага, но только для парадокса, Dbf и прочих файловых баз.

Для клиент-сервера доступа к серверным индексам нет, а локальные индексы BDE создавать никогда не умела.


 
kaif   (2002-06-21 12:38) [13]

Если на IB6.0 перейти, эту проблему можно решить.
1. там можно вывести дату в YYYY-MM-DD формате.
2. там можно ее разобрать на год, месяц и день.
3. там можно привести поле датавремя (timestamp) к дате CAST(my_timestamp_field as DATE), так как IB6 различает типы данных:
DATE, TIME, TIMESTAMP (последний соответствует типу DATE IB5.*)


 
Turalyon   (2002-06-21 13:06) [14]

>> Alexandr ©
Но ведь это из хелпа по TIBCustomDataSet ...
Или им просто было лень переписывать хелп???


 
Alexandr   (2002-06-21 13:13) [15]

не верь хелпу.
Верь исходникам и практике.


 
Turalyon   (2002-06-21 13:16) [16]

Хм.. я как то в исходники не лазил :) Кто же их даст...


 
Alexandr   (2002-06-21 13:19) [17]

ну многие исходники компонентов есть в поставке дельфи, да и практика остается.


 
Turalyon   (2002-06-21 13:26) [18]

К сожалению у меня еще очень маленький опыт по работе с IB... но я исправляюсь :))



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

Форум: "Базы";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.016 c
8-47613
Olgerd
2002-03-01 19:48
2002.07.15
Эффект Допплера


1-47423
DenNNis
2002-07-03 08:32
2002.07.15
Переменная типа Date ???


14-47687
Igorek
2002-06-13 16:06
2002.07.15
Даешь форум


14-47754
ev
2002-06-01 20:10
2002.07.15
встреча мастеров в Москве !


4-47892
CoD
2002-05-13 19:37
2002.07.15
Вход в Windows XP





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский