![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ADO+dbf - как будут называться функции в select [D7, dBase, FoxPro]
Раиса © (2009-05-07 04:36:00)lower=lcase
upper=ucase
А как будут выглядеть типа substring, cast, replace и прочие, если они имеются?
Anatoly Podgoretsky (2009-05-07 15:30:00) [21]> Раиса (07.05.2009 15:02:14) [14]
Одним запросом не получится и нужен анализ на клиентской стороне и создание динамического запроса.
if End >= Start then один еlse первый запрос объединение второй запрос
Первый запрос до 31.12.2004 и второй запрос начиная c 1.01.2004, при переформатирование дат с заменой года на константу, например 2004, SQL диалект должен позволять разделять дату на составляющие и обратное складывание, хотя бы в текстовый формат YYYYMMDD
Это при условии, что делается только запросами без применения серверных решений.
Раиса (2009-05-07 15:02:00) [22]Извините, я еду к врачу, поэтому вернусь часа через 4...
Игорь Шевченко © (07.05.09 14:52) [12]
А поподробнее... Что в фильтре? И хотелось бы запросом...
sniknik (2009-05-07 14:58:00) [23]> у кого дни рождения в период с 29.12 по 05.01
это уже не период, а куча периодов по одному на год
примерно так (только без гарантий на на все провайдеры кроме jet)
SELECT * FROM Table1
WHERE DateSerial(1000, Month(Date), Day(Date)) BETWEEN :Start AND :End
и задавать нужно в пределах года, если так как у тебя начало в одном конец в другом то нужно либо 2 условия либо 2 запроса. понятно почему думаю. (кстати 1000 это високосный год? вроде да, но если нет то нужно взять високосный)
Игорь Шевченко (2009-05-07 14:52:00) [24]
> а надо выбрать всех, у кого дни рождения в период с 29.12
> по 05.01, например....
Filtered + OnFilterRecord ?
Anatoly Podgoretsky (2009-05-07 14:45:00) [25]> Раиса (07.05.2009 14:27:10) [10]
Вообще то не представляю такой запрос, BETWEEN не проходит, и очень хорошо что ты привела именно такой формат, очень наглядно. Для MS SQL и других серверов, которые работают с Юлианской датой еще представляю, но с некоторой ошибкой на стыке лет.
Раиса (2009-05-07 14:27:00) [26]Все же я не представляю, как будет выглядеть запрос (чтобы и работал) о днях рождениях, если в файле дата рождения в виде даты с годом, а надо выбрать всех, у кого дни рождения в период с 29.12 по 05.01, например....
Помогите, пожалуйста...
sniknik (2009-05-07 14:22:00) [27]> Но все-таки хочется написать в запросе: ...
хочется так напиши. а вот когда возникнет желание чтобы еще и работало...
> определить список лиц, дни рождения которых приходятся в период с ... по ... и ADO+dbf...
чтобы выбрать период нет никакой необходимости в указанных функциях, вообще в запросе не нужно ничего считать, просто определить 2 параметра и задавать их значения перед открытием.
> А как сменить провайдера на чужом компе? И кто это позволит?
не на компе и не инетовского... а используемого в твоей программе. для коннекта. почитай про ADO где нибудь...
Раиса (2009-05-07 14:16:00) [28]А как сменить провайдера на чужом компе? И кто это позволит?
Раиса (2009-05-07 14:14:00) [29]Но все-таки хочется написать в запросе: cast, substring, replace, разница между датами в днях...
А если полностью задача, то: определить список лиц, дни рождения которых приходятся в период с ... по ... и ADO+dbf...
sniknik (2009-05-07 14:11:00) [30]> А где смотреть ODBC +dbase?
есть очень большая вероятность, что в jet (access). зависит от версии. для однозначности надо бы сменить провайдера.
Anatoly Podgoretsky (2009-05-07 14:10:00) [31]> Раиса (07.05.2009 14:02:04) [4]
Это все потому, что то цепочка длинная {ODBC/JET/BDE(родное)}, с потерей части ДНК
Раиса (2009-05-07 14:02:00) [32]Попробовала Substr(str, Позиция[, Кол-во символов]) - запрос говорит, что неопределенная функция в строке.
Про str я знаю, проходит. А вот cast как будет выглядеть (из символов в дату, например)?
BDE+dbase - функции это одно.
А где смотреть ODBC +dbase?
Виталий Панасенко (2009-05-07 13:54:00) [33]Тогда смотрите доку по dBase... Например, определение позиции подстроки в строке будет AT(Substr, Str), вырезать подстроку Substr(str, Позиция[, Кол-во символов]) и т.д.(ltrim, rtrim, atrim)
Раиса (2009-05-07 13:03:00) [34]Provider=MSDASQL;Persist Security Info=False;Data Source=Файлы dBASE;Initial Catalog=путь к файлам
Настройки ODBC по умолчанию, ничего в них не меняла.
Виталий Панасенко (2009-05-07 09:13:00) [35]Будет зависеть от провайдера(или драйвера для ODBC провайдера)