Форум: "Базы";
Текущий архив: 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.053 c