Форум: "Базы";
Текущий архив: 2007.03.25;
Скачать: [xml.tar.bz2];
ВнизCAST в Microsoft.Jet.OLEDB.4.0 Найти похожие ветки
← →
Kvinta (2006-12-27 06:57) [0]Почему не работает запрос (выдает ошибку)
Select * from REBBASE WHERE CAST (DATA_UCHET AS CHAR(10))
?
Запрос через АДО.
← →
Stanislav © (2006-12-27 17:07) [1]Select * from REBBASE WHERE CAST (DATA_UCHET AS CHAR(10))
а дальше? чему равно?
← →
alex_*** © (2006-12-27 17:15) [2]и какую ошибку дает
← →
Palladin © (2006-12-27 17:36) [3]1. А кто сказал что в Jet есть Cast ?
2. Условие не понял, сам то понимаешь свое условие?
← →
Anatoly Podgoretsky © (2006-12-27 18:53) [4]> Kvinta (27.12.2006 6:57:00) [0]
Ни АДО, ни JET просто такого не имеют.
← →
Kvinta (2006-12-28 09:15) [5]Спосибо что отзвались.
Отвечаю
1) Ошибка: "Непознанная ошибка"
2) Ничему не равно. Грид пустой. Само собой если убрать WHERE CAST (DATA_UCHET AS CHAR(10)) Все работает.
3) Смысл такой -вернуть все поля, но поле Data_Uchet преобразовать в строковй тип.
4) Я и не утверждаю что CAST работает, поэтому к специалистам и обратился. Подскажите тогда как иначе написать запрос чтобы он мне указанное поле (вообще поля) в виде строки возращал?
ЗЫ: Пример с CAST взят из книжки.
← →
palva © (2006-12-28 09:55) [6]> вернуть все поля, но поле Data_Uchet преобразовать в строковй тип
Тогда уж как-нибудь так:
Select POLE1, POLE2, CAST (DATA_UCHET AS CHAR(10)) from REBBASE
а предложение WHERE используется, если надо ограничить выборку условием.
← →
Kvinta (2006-12-28 10:09) [7]
> Select POLE1, POLE2, CAST (DATA_UCHET AS CHAR(10)) from
> REBBASE
таже ошибка. :(
Я предпологаю что всетаки CAST он не знает... Может кто другие варианты подскажет.
← →
Anatoly Podgoretsky © (2006-12-28 13:22) [8]> Kvinta (28.12.2006 10:09:07) [7]
Select POLE1, POLE2, DATA_UCHET from REBBASE
← →
Kvinta (2006-12-28 13:29) [9]
> Select POLE1, POLE2, DATA_UCHET from REBBASE
И? Это понятно. Может я не совсем ясно выразился... Проблема именно в том что поле DATA_UCHET - у меня типа DATA А я хочу получить в ADO его как строку. Причем преобразования уже с полученными данными не канают, нужно именно чтобы пришло как строка.
← →
Stanislav © (2006-12-28 13:57) [10]Select POLE1, POLE2, Str(DATA_UCHET) from REBBASE ?
Только зачем именно так?
← →
Kvinta (2006-12-29 05:26) [11]
> Select POLE1, POLE2, Str(DATA_UCHET) from REBBASE ?
> Только зачем именно так?
1) Говорит что Ошибка синтаксиса, пропущен оператор в выражении запроса Str(DATA_UCHET) from REBBASE...
2) Я тут до этого поднимал тему по поводу поиска даты по части даты. Например - 11.12.?? Пережодит к первой дате совпадающей с введенной частью. Locate работает толко со строками, и числами. В результате пришлы к выводу что нужно перевести ее в строку на этапе запроса. Вот и пытаюсь это сделать.
← →
ЮЮ © (2006-12-29 06:27) [12]А БД какая? В MS SQL лучше использовать для этих целей CONVERT, а не CAST, т.к. первый даёт более однозначный результат.
Locate работает толко со строками, и числами.
А дата, оазве, не число? Может ещё временная часть в данных присутствует?
← →
Kvinta (2006-12-29 06:44) [13]
> А БД какая? В MS SQL лучше использовать для этих целей CONVERT,
Если несложно приведите пример, (синтаксис)
> а не CAST, т.к. первый даёт более однозначный результат.
База аксевская, подключается из локальной папки через Microsoft.Jet.OLEDB.4.0
> Locate работает толко со строками, и числами.
> А дата, оазве, не число?
Нет, дата это дата :)
>Может ещё временная часть в данных
> присутствует?
Нет, толко дата.
← →
ЮЮ © (2006-12-29 07:08) [14]Нет, дата это дата :)
type
TDateTime = type Double;
Так что дата - это всего лишь число.procedure TForm1.Button2Click(Sender: TObject);
begin
DateTimePicker1.Time := 0;
Query1.Locate("BirthDay", DateTimePicker1.DateTime, []);
end;
Очень даже Locat-ится.
← →
Kvinta (2006-12-29 10:13) [15]
> procedure TForm1.Button2Click(Sender: TObject);
> begin
> DateTimePicker1.Time := 0;
> Query1.Locate("BirthDay", DateTimePicker1.DateTime, []);
>
> end;
> Очень даже Locat-ится.
Так то оно так. А если так?
Query1.Locate("BirthDay", "11.12.", []);
Т.е. дата незакончена? Неработает. И проблемма именно в этом!
← →
Stanislav © (2006-12-29 10:21) [16]А так, тоже не работает?
← →
Stanislav © (2006-12-29 10:21) [17]select str(date())
← →
ЮЮ © (2006-12-29 10:31) [18]а по "1", "11", "11.", "11.1" попутно искать не хочется? :)
Может проблему сформулировать по другому? Тогда и решение найдется другое:
Select *, Day(DATA_UCHET) as Day, Month(DATA_UCHET) as Month from REBBASE
Query1.Locate(
"Day;Month",
VarArrayOf([StrToIntDef(Edit1.Text, 0), StrToIntDef(Edit2.Text, 0)]),
[]
);
← →
Kvinta (2006-12-29 10:32) [19]Select str(date(Data_UCHET)) from REBBASE
Ошибка: Неверное число аргументов функции в выражении запроса str(date(Data_UCHET))
← →
Stanislav © (2006-12-29 10:34) [20]просто такой запрос, выполни
select str(date())
← →
Palladin © (2006-12-29 10:34) [21]не str, а cstr
← →
Kvinta (2006-12-29 10:39) [22]
> Select *, Day(DATA_UCHET) as Day, Month(DATA_UCHET) as Month
> from REBBASE
Тоже ошибка.
← →
ЮЮ © (2006-12-29 10:42) [23]Синтаксис acсess-овского SQL должен ты знать, коль его используешь вместо рекомендованного Microsoft-ом SQL сервера :) Ну посмотри его функции, наконец.
← →
Kvinta (2006-12-29 10:43) [24]
> не str, а cstr
Таже ошибка.
← →
Stanislav © (2006-12-29 10:46) [25]Эта - "Неопознаная ошибка" ?
← →
ЮЮ © (2006-12-29 10:46) [26]Day(x) === DATEPART(dd,x)
Month(x) === DATEPART(mm,x)
← →
Stanislav © (2006-12-29 10:48) [27]если Stanislav © (29.12.06 10:46) [25] - да,
то откомпилированный exe должен работать нормально.
← →
ЮЮ © (2006-12-29 10:54) [28]Сорри, DATEPART это, похоже, наоборот серверная ф-ция. А Day и Month вполне Access-овские
← →
Stanislav © (2006-12-29 11:08) [29]У меня все работает без проблем cstr,str, day, month
Win XP sp2, D7, jet 4.0
← →
sniknik © (2006-12-29 11:13) [30]Palladin © (29.12.06 10:34) [21]
> не str, а cstr
пофиг, есть и то и то. (если речь о jet само собой, в чем почемуто сомневаюсь чем дальше тем больше)
← →
Anatoly Podgoretsky © (2006-12-29 15:46) [31]> Palladin (29.12.2006 10:34:21) [21]
И это не JET, а ODBC
← →
Anatoly Podgoretsky © (2006-12-29 15:47) [32]> Kvinta (29.12.2006 10:39:22) [22]
И это тоже JET не поддерживает
← →
Anatoly Podgoretsky © (2006-12-29 15:48) [33]> ЮЮ (29.12.2006 10:54:28) [28]
Акцессовские, а не JET
← →
Anatoly Podgoretsky © (2006-12-29 15:48) [34]> Stanislav (29.12.2006 11:08:29) [29]
Врешь, у тебя ODBC
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2007.03.25;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.125 c