Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите с запросом sql. Заранее благодарен [D5, Paradox]


Страницы:   1 2

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 = :data
, а select * 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;


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо