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

Вниз

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

Наверх




Память: 0.54 MB
Время: 0.033 c
4-1162592489
ph0sgen
2006-11-04 01:21
2007.03.25
вопрос по BASM


2-1172907175
Astronom
2007-03-03 10:32
2007.03.25
Дата создания файла


15-1172676204
Юрий Зотов
2007-02-28 18:23
2007.03.25
Вот так фокус !!!


11-1151018833
DevilDevil
2006-06-23 03:27
2007.03.25
Smart-Linking


2-1172973841
arturich
2007-03-04 05:04
2007.03.25
Работа с TProgressBar