![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
CAST в Microsoft.Jet.OLEDB.4.0 [D6]
Kvinta © (2006-12-27 06:57:00)Почему не работает запрос (выдает ошибку)
Select * from REBBASE WHERE CAST (DATA_UCHET AS CHAR(10))
?
Запрос через АДО.
ЮЮ (2006-12-29 07:08:00) [21]Нет, дата это дата :)
type
TDateTime = type Double;
Так что дата - это всего лишь число.
procedure TForm1.Button2Click(Sender: TObject);
begin
DateTimePicker1.Time := 0;
Query1.Locate('BirthDay', DateTimePicker1.DateTime, []);
end;
Очень даже Locat-ится.
Kvinta (2006-12-29 06:44:00) [22]
> А БД какая? В MS SQL лучше использовать для этих целей CONVERT,
Если несложно приведите пример, (синтаксис)
> а не CAST, т.к. первый даёт более однозначный результат.
База аксевская, подключается из локальной папки через Microsoft.Jet.OLEDB.4.0
> Locate работает толко со строками, и числами.
> А дата, оазве, не число?
Нет, дата это дата :)
>Может ещё временная часть в данных
> присутствует?
Нет, толко дата.
ЮЮ (2006-12-29 06:27:00) [23]А БД какая? В MS SQL лучше использовать для этих целей CONVERT, а не CAST, т.к. первый даёт более однозначный результат.
Locate работает толко со строками, и числами.
А дата, оазве, не число? Может ещё временная часть в данных присутствует?
Kvinta (2006-12-29 05:26:00) [24]
> Select POLE1, POLE2, Str(DATA_UCHET) from REBBASE ?
> Только зачем именно так?
1) Говорит что Ошибка синтаксиса, пропущен оператор в выражении запроса Str(DATA_UCHET) from REBBASE...
2) Я тут до этого поднимал тему по поводу поиска даты по части даты. Например - 11.12.?? Пережодит к первой дате совпадающей с введенной частью. Locate работает толко со строками, и числами. В результате пришлы к выводу что нужно перевести ее в строку на этапе запроса. Вот и пытаюсь это сделать.
Stanislav (2006-12-28 13:57:00) [25]Select POLE1, POLE2, Str(DATA_UCHET) from REBBASE ?
Только зачем именно так?
Kvinta (2006-12-28 13:29:00) [26]
> Select POLE1, POLE2, DATA_UCHET from REBBASE
И? Это понятно. Может я не совсем ясно выразился... Проблема именно в том что поле DATA_UCHET - у меня типа DATA А я хочу получить в ADO его как строку. Причем преобразования уже с полученными данными не канают, нужно именно чтобы пришло как строка.
Anatoly Podgoretsky (2006-12-28 13:22:00) [27]> Kvinta (28.12.2006 10:09:07) [7]
Select POLE1, POLE2, DATA_UCHET from REBBASE
Kvinta (2006-12-28 10:09:00) [28]
> Select POLE1, POLE2, CAST (DATA_UCHET AS CHAR(10)) from
> REBBASE
таже ошибка. :(
Я предпологаю что всетаки CAST он не знает... Может кто другие варианты подскажет.
palva (2006-12-28 09:55:00) [29]> вернуть все поля, но поле Data_Uchet преобразовать в строковй тип
Тогда уж как-нибудь так:
Select POLE1, POLE2, CAST (DATA_UCHET AS CHAR(10)) from REBBASE
а предложение WHERE используется, если надо ограничить выборку условием.
Kvinta (2006-12-28 09:15:00) [30]Спосибо что отзвались.
Отвечаю
1) Ошибка: "Непознанная ошибка"
2) Ничему не равно. Грид пустой. Само собой если убрать WHERE CAST (DATA_UCHET AS CHAR(10)) Все работает.
3) Смысл такой -вернуть все поля, но поле Data_Uchet преобразовать в строковй тип.
4) Я и не утверждаю что CAST работает, поэтому к специалистам и обратился. Подскажите тогда как иначе написать запрос чтобы он мне указанное поле (вообще поля) в виде строки возращал?
ЗЫ: Пример с CAST взят из книжки.
Anatoly Podgoretsky (2006-12-27 18:53:00) [31]> Kvinta (27.12.2006 6:57:00) [0]
Ни АДО, ни JET просто такого не имеют.
Palladin (2006-12-27 17:36:00) [32]1. А кто сказал что в Jet есть Cast ?
2. Условие не понял, сам то понимаешь свое условие?
alex_*** (2006-12-27 17:15:00) [33]и какую ошибку дает
Stanislav (2006-12-27 17:07:00) [34]Select * from REBBASE WHERE CAST (DATA_UCHET AS CHAR(10))
а дальше? чему равно?