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

Вниз

Работа с SQL, база dbf   Найти похожие ветки 

 
Tornado ©   (2006-10-19 08:06) [0]

Надо написать простенький запрос к таблице dbf:

SQL.Add("SELECT * FROM KART.DBF WHERE (KART.DROJD > :TDATE_)");
Parameters.ParamByName("TDATE_").Value := "10.12.1965";

Не проходит, пишет Operator/operand type mismatch

Уж по всякому пытался - никак не идет. Вообще надо даже в параметре вместо статичной даты написать текущую дату, типа Date(). С dbf никогда не работал, читал где-то что там по другому как то надо строить запросы?


 
Tornado ©   (2006-10-19 08:07) [1]

KART.DROJD - это тоже поле с датой (день рожденья)


 
Zacho ©   (2006-10-19 08:10) [2]

Надо:

ParamByName("TDATE_").AsString := "10.12.1965";


 
Tornado ©   (2006-10-19 08:20) [3]

Zacho ©   (19.10.06 08:10) [2]

Я может чегото не допонимаю, но
Parameters.ParamByName("TD_").AsString := "31.12.1965";

Ошибка: [Error] Unit1.pas(223): Undeclared identifier: "AsString"


 
ЮЮ ©   (2006-10-19 08:23) [4]

А, по-моему, надо
 .AsDateTime
ибо если .Value := <строка>, то это эквивалентно  .asString = <строка> и параметр будет определен как строкового типа, а поле, KART.DROJD, полагаю, типа Data


 
Zacho ©   (2006-10-19 08:23) [5]

А какими собственно компанентами доступа ты пользуешься ?


 
ЮЮ ©   (2006-10-19 08:26) [6]

Parameters.ParamByName("TD_").DataType := ....
Parameters.ParamByName("TD_").Value :=


 
Zacho ©   (2006-10-19 08:52) [7]

ЮЮ ©   (19.10.06 8:23) [4]

Я, может чего-нибудь не понимаю, но разве при .AsDateTime:=<строка> произойдёт пребразование строки в дату ?

ИМХО, тогда уж .AsDateTime:=StrToDate(...)


 
ЮЮ ©   (2006-10-19 08:58) [8]


> AsDateTime:=<строка>


Я не предлагал строку. Есиественно нужно получить TDateTime
P/S/ у ADO-Parameters нет никаких asXXX. Поэтому надо особенно внимательно подсовывать variant значение. Или определять DataType "вручнкю": см [6]


 
Zacho ©   (2006-10-19 09:06) [9]

ЮЮ ©   (19.10.06 8:58) [8]

Ага, понял.

До меня просто не сразу дошло, что речь идёт об ADO.
Только сейчас обратил внимание на Parameters


 
Desdechado ©   (2006-10-19 11:02) [10]

> надо даже в параметре вместо статичной даты написать текущую дату, типа Date()
Ну так и напиши туда дату, а не строку, безуспешно пытающуюся изобразить из себя дату. Главное - соблюсти тип поля при впихивании в вариантный Value значения параметра.


 
ANB ©   (2006-10-19 11:04) [11]


> Вообще надо даже в параметре вместо статичной даты написать
> текущую дату, типа Date().

Now;


 
ANB ©   (2006-10-19 11:04) [12]

Если нужна текущая дата без времени - round(now);


 
ЮЮ ©   (2006-10-19 11:21) [13]


> Вообще надо даже в параметре вместо статичной даты написать
> текущую дату, типа Date().
WHERE (KART.DROJD > :TDATE_)


Типа картотека на ожидающихся новорожденных :)


 
sniknik ©   (2006-10-19 11:52) [14]

> Если нужна текущая дата без времени - round(now);
trunc, а то у тебя можно получить и завтра.


 
ANB ©   (2006-10-19 11:53) [15]


> trunc, а то у тебя можно получить и завтра.

Согласен. Лопухнулся.


 
Anatoly Podgoretsky ©   (2006-10-19 19:04) [16]

Какие еще trunc или round, просто Date


 
Anatoly Podgoretsky ©   (2006-10-19 19:06) [17]

А если это еще и MS SQL сервер, то можно элементарно получить дату на два дня меньше, у него формат даты не совпадает с Борландовским. Поэтому ни каких целых чисел, только типы TDate/TDateTime



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

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

Наверх





Память: 0.48 MB
Время: 0.046 c
2-1165897474
Kvinta
2006-12-12 07:24
2006.12.31
Вернуть Field а ADO


2-1165761948
Flood_control
2006-12-10 17:45
2006.12.31
Отправить окно в трэй с помощью ShowWindow


2-1165772153
lobach
2006-12-10 20:35
2006.12.31
Как отследить запуск приложения?


15-1165836418
IMHO
2006-12-11 14:26
2006.12.31
Слово о Rapidshare


15-1164733693
VictorT
2006-11-28 20:08
2006.12.31
И на RC-форумах бывает прикольный стёб :D





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский