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

Вниз

Работа с 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.032 c
15-1165856974
Ксардас
2006-12-11 20:09
2006.12.31
Учет входящего инет-трафика?


2-1165890072
dreamse
2006-12-12 05:21
2006.12.31
Подскажите метод генерации нового имени RealTime компонента


2-1165930015
oleglu
2006-12-12 16:26
2006.12.31
DBGrid


2-1165900931
Babs
2006-12-12 08:22
2006.12.31
Переключение раскладки клавы


2-1165784910
tigrenok_o
2006-12-11 00:08
2006.12.31
Подскажите пожалуйста