![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите с запросом sql. Заранее благодарен [D5, Paradox]
Ted © (2004-07-08 13:48:00)procedure TForm1.Button8Click(Sender: TObject);
var
s:string;
begin
memo1.Lines.Add('Select * From buzdey');
memo1.Lines.Add('Where data =');
s:= datetostr(date);
memo1.Lines.Add(s);
Query1.Close;
Query1.SQL.Assign(Memo1.Lines);
Query1.Open;
end;
ted (2004-07-21 12:18:00) [1]> Ильш ©
Совершенно согласен... )))
Но когда очень мало времени на решение задачи... тогда очень грустно...
Я работаю сисадмином... у меня 78 юзверей... и если ко мне, например подойдет кто-нибудь с вопросом как в ворде сделать проверку орфографии и я его отправлю на f1 это будет не здорово... хотя когда это каждый день устаещь... прекрастно понимаю...
P.S. еще раз всем огромное спасибо за помощь...
Ильш (2004-07-09 09:37:00) [2]FAQ - для тех кто задает вопрос... (я никого не имею в виду и ни на кого пальцем не показываю, просто выскажусь)
Вопрос:
Что мне делать???? Спасите!!! Помогите!!!и т.д.
Ответы:
1. F1- это такая кнопка около Esc... не нашел? Ну кнопка по которой из игрушек выходим.. Воот. Маладец!
2. Yandex- это сайт такой.
3. Поиск по тематическим форумам- это для продвинутых...
4. За дать вопрос здесь.
Почему то многие игнорируют первые три пунктаи переходят сразу к четвертому. При чем формулируют его до нельзя непонятно. Хотя есть и плюс в этом - отвечающие тренируют свои способности в чтении мыслей!
Соловьев (2004-07-08 16:07:00) [3]
> [32] HSolo © (08.07.04 16:04)
через 5 мин еэму надо будет и месяц прибавить или еще ченить...уж лучше если почитает справку :)
F1+TDateTime type
там нажать на See also
MORA (2004-07-08 16:05:00) [4]Тип TDateTime - это дробное число, целая часть к-рого - дни начиная с 30 декабря 1899 года, а дробная - часы (например,
0 12/30/1899 12:00 am
2.75 1/1/1900 6:00 pm
-1.25 12/29/1899 6:00 am
35065 1/1/1996 12:00 am)
HSolo (2004-07-08 16:04:00) [5]> Ted (08.07.04 15:54) [31]
Или как :)
Поскольку
type TDateTime = type Double;
то достаточно Дата2 := Дата1 + 10;
Ted (2004-07-08 15:54:00) [6]>Соловьев
>MORA
Дата2 := Дата1 + 10 дней
это мне и надо... но для этого дата1 перевести в string и прибавить 10 или как?
MORA (2004-07-08 15:50:00) [7]
> Еше глупый вопрос... можно ли в ходе выполнения программы
> поменять дату... т.е. как получить data1+10дней?
Зачем? Ты же и так задаешь диапазон. Дата1 - например сегодняшняя, а Дата2 := Дата1 + 10 дней. Или тебе нужна ф-ция, добавляющая N дней к дате?
Соловьев (2004-07-08 15:47:00) [8]
> т.е. как получить data1+10дней?
F1+Date function
Ted (2004-07-08 15:42:00) [9]>Соловьев
>Mora
Спасибо за терпение...
Еше глупый вопрос... можно ли в ходе выполнения программы поменять дату... т.е. как получить data1+10дней?
MORA (2004-07-08 15:33:00) [10]Короче, вот так:
if Query1.Active then Query1.Close;
if not Query1.Prepared then Query1.Prepare;
Query1.ParamByName('Data1').AsDate:=Date1;
Query1.ParamByName('Data2').AsDate:=Date2;
Query1.ParamByName('Data').AsDate:=date beetwen Data1 and data2;
Query1.Open;
MORA (2004-07-08 15:31:00) [11]
> Query1.ParamByName('Data').AsDate:=date beetwen Data1 and
> data2;
Что это???
Твой запрос, который ты используешь, не
select * from tbl, а
where data = :dataselect * from tbl
where data between :data1 and :data2
Кстати, плохо выбрано название переменной - лучше не DATA (что переводится как ДАННЫЕ), а DATE (собственно, дата).
А остальное правильно:
if Query1.Active then Query1.Close;
if not Query1.Prepared then Query1.Prepare;
Query1.ParamByName('Data1').AsDate:=Date1;
Query1.ParamByName('Data2').AsDate:=Date2;
// - это удаляем с лица программы - Query1.ParamByName('Data').AsDate:=date beetwen Data1 and data2;
Query1.Open;
Ted (2004-07-08 15:14:00) [12]>Соловьев
Пните на путь истинный, плиз...
if Query1.Active then Query1.Close;
if not Query1.Prepared then Query1.Prepare;
Query1.ParamByName('Data').AsDate:=Date;
Query1.ParamByName('Data').AsDate:=date beetwen Data1 and data2;
Query1.Open;
Соловьев (2004-07-08 15:02:00) [13]
> Query1.ParamByName('Data').AsDate:=Date beetwen data1 and
> data2;
нет. два параметра надо использовать
Ted (2004-07-08 15:01:00) [14]>Соловьев
Ура!!!!!! ЗАработало!!!!
Огромное спасибо!!!!
А можно ли задать диапазон дат в запросе через переменные?
Так будет верно?
if Query1.Active then Query1.Close;
if not Query1.Prepared then Query1.Prepare;
Query1.ParamByName('Data').AsDate:=Date beetwen data1 and data2;
Query1.Open;
Ильш (2004-07-08 15:00:00) [15]
> cannot perform this operation on an open dataset
> (((
ну пишет же что открыта база !!!!
закрой
Соловьев (2004-07-08 14:54:00) [16]
> Query1.Prepare;
> Query1.ParamByName('Data').AsDate:=Date;
> Query1.Open;
if Query1.Active then Query1.Close;
if not Query1.Prepared then Query1.Prepare;
Query1.ParamByName('Data').AsDate:=Date;
Query1.Open;
Ted (2004-07-08 14:53:00) [17]>Соловьев
Query1.Prepare;
Query1.ParamByName('Data').AsDate:=Date;
Query1.Open;
Кричит туже ошибку
cannot perform this operation on an open dataset
(((
Соловьев (2004-07-08 14:48:00) [18]
> Как я понял должно быть так?
нет заменить надо те две строки.
А вот эту строку надо переделать
> Query1.Prepare;
if not Query1.Prepared then Query1.Prepare;
Ted (2004-07-08 14:45:00) [19]>Соловьев
Query1.Prepare;
Query1.ParamByName('Data').AsDate:=Date;
Query1.ExecSQL;
Query1.UnPrepare;
Query1.Open;
Как я понял должно быть так?
И все равно не хочет фурычить....:(((
HELP!!!!!!!!
Соловьев (2004-07-08 14:41:00) [20]
> Query1.ExecSQL;
> Query1.UnPrepare;
Query.Open;