Форум: "Базы";
Текущий архив: 2002.11.07;
Скачать: [xml.tar.bz2];
ВнизSQL и функции Найти похожие ветки
← →
KidMan (2002-10-17 23:01) [0]Здравствуйте Мастера!
Такой вот запрос
with Query1 do begin
SQL.Clear;
SQL.Close;
SQL.Add("SELECT * FROM BASE.DBF");
SQL.Add("WHERE (ПОЛЕ ТИПА TDate) = PARAM);
ParamByName("PARAM").Value := "только день и месяц без года";
Open;
end;
Что мне делать чтобы из поля даты в запросе вытащить только dd:mm ? DBF под винды...
Заранее благодарю...
← →
sniknik (2002-10-17 23:17) [1]можно попробовать
SQL.Add("SELECT * FROM "BASE.DBF"");
SQL.Add("WHERE SUBSTRING(CAST(ПОЛЕТИПАTDate AS CHAR(10)) FROM 1 FOR 5) = SUBSTRING(CAST(:PARAM AS CHAR(10)) FROM 1 FOR 5)");
ParamByName("PARAM").Value := "день и месяц с любым годом";
ну или сразу ограничить CAST(ПОЛЕТИПАTDate AS CHAR(5)) если только день месяц первые идут, не помню.
p.s. нет такого DBF под винды... У тебя скорей всего Local SQL под BDE (но это тоже не тип базы а доступ, тип будет dBase или может быть Foxpro).
← →
KidMan (2002-10-17 23:50) [2]Можно попробовать или это все же бум работать? Вообще есть ли какое нибудь правило использоваия функций в строке запроса?
Есть такой по крайней мере когда создаешь БД через DataBase Desktop - dBASE for Windows ....
Спасибо...
← →
oss (2002-10-18 00:07) [3]вытаскивать можешь все, укажи в свойствах поля маску вывода и едита, и наслаждайся :)
← →
KidMan (2002-10-18 00:17) [4]oss
Сорри... не понял (((
← →
sniknik (2002-10-18 00:18) [5]должно по непроверенным данным (всетаки на память писал и без проверок негарантированно), проверять тебе.
првило конечно есть и не одно SQL называется!
найди у себя в файл LOCALSQL.HLP (после установки дельфей образуется)
"dBASE for Windows" и "DBF под винды" есть всетаки разница!
Пожалуйста...
← →
KidMan (2002-10-18 00:27) [6]sniknik
Спасио за LOCALSQL.HLP - почитаю как смогу...
Касательно - "dBASE for Windows" и "DBF под винды" ... никакой разницы... по мне... ламеру во всяком случае ;)) 7 лет бью ДБФ и что с клипером что с фокспро что с ДБЕЙС... никогда с проблемами не сталкивался... ))
← →
sniknik (2002-10-18 00:43) [7]клипер и фокспро сами по себе базы достаточно сказать пишу на фоксе и все понятно (особенно если и версию укажеш).
а с дельфями все не так это не база данных а язык у которого просто есть возможность подключатся к различным базам через различные интерфейсы отсюда и требования к точности иначе тебя просто не "поймут".
или что хуже будут давать советы по другому типу баз(SQL) в итоге только время потеряеш.
в итоге разница есть. кстати "DBF"-ом называют еще какуюто базу или даже SQL сервер. Так что вот! :-)))
← →
KidMan (2002-10-18 01:42) [8]sniknik
Спасибо за лекцию... (улыбается) о я все же кое что узнал за эти 10 лет общения с дбф... и поверь мне по большому счету нет никакой разницы между фокспро дбф и визуал дебейс например...
Чичас проблем конвертации одной БД в другую практически нет...
А вот попробовал бы ты гонять БД под ДОС лет этак 7 тому назад да с учетом нац языка... (смеется)
Это теперь легко тем у кого есть книги... инет... а тогда убивались за каждый листок бумаги распечатанного на епсон fx-1000... доков просто не было )))
Еще раз сэнкс...
← →
sniknik (2002-10-18 08:56) [9]KidMan © (18.10.02 01:42)
нет никакой разницы между фокспро дбф и визуал дебейс
поспорим?
7 лет назад я на фоксе сидел. А под Дос (клипер) и сейчас. :(. Доки были, только чаще на английском (хотя наверно у кого как,).
(будут ли при коммунизме деньги? армянское радио отвечает "у кого будут а у кого нет" :-))
Не за что.
← →
KidMan (2002-10-19 22:57) [10]sniknik
У меня не заработал твой вариант... Может есть еще какие идеи?
Заранее благодарю!
← →
sniknik (2002-10-20 01:05) [11]И тем не менее вариантик рабочий, теперь уже попроверенным данным. (пришлось :о( )
Query1.Close;
Query1.SQL.Text:= "SELECT * FROM "CASHSAIL.DBF" WHERE "+
"SUBSTRING(CAST("CASHSAIL.DBF"."DATE" AS CHAR(10)) FROM 1 FOR 5) = "+
"SUBSTRING(CAST(:DAT AS CHAR(10)) FROM 1 FOR 5)";
Query1.ParamByName("Dat").AsDateTime:= StrToDate("02.11.2005");
Query1.Open;
обрати внимание на дату (специально из строки формирую для наглядности) естественно таких записей еще нет но то что есть выводит.
можеш еще попробовать более наглядный вариант.
Query1.Close;
Query1.SQL.Text:= "SELECT * FROM "CASHSAIL.DBF" WHERE "+
"EXTRACT(MONTH FROM "CASHSAIL.DBF"."DATE") = :dMonth AND "+
"EXTRACT(DAY FROM "CASHSAIL.DBF"."DATE") = :dDay";
Query1.ParamByName("dMonth").AsInteger:= MonthOf(StrToDate("02.11.2005"));
Query1.ParamByName("dDay").AsInteger:= DayOf(StrToDate("02.11.2005"));
Query1.Open;
выводит то же самое.
← →
KidMan (2002-10-20 01:14) [12]Я попробую и это...!
В любом случае спасибо за терпение и внимание!
← →
KidMan (2002-10-21 23:37) [13]sniknik
-------
Спасибо большое!
У меня все получилось... а главное я понял как это делается ;))
Всяческих удач!
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.11.07;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c