Вниз
Скачать: CL | DM;

Помогите с запросом sql. Заранее благодарен   Найти похожие ветки 

← →
Ted   (2004-07-08 13:48) [0]

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-08 13:52) [1]

Собственно задача в том, чтобы отобрать данные с текущим днем +10 дней... ДОлго парился решил сделать это через поле мемо...
Помогите кто-нибудь решить через SQL, плиззз....


← →
Ильш ©   (2004-07-08 13:54) [2]

A Query1.SQL.Add уже отменили?


← →
Ted   (2004-07-08 13:58) [3]

Мне нужно менять запрос при старте программы...  чтобы менялась дата запроса... в этом и плюшка...


← →
Наталия ©   (2004-07-08 13:59) [4]

Используй параметры для передачи нужного значения в запрос


← →
Ильш ©   (2004-07-08 14:00) [5]


> Мне нужно менять запрос при старте программы...  чтобы менялась
> дата запроса... в этом и плюшка

стоп стоп стоп
не пойму в чем проблема то? разве при старте проги нельзя вызвать Query1.SQL.Add ???? Или же ты вопрос некорретно ставишь!


← →
Ted   (2004-07-08 14:01) [6]

>Наталия
Я никогда не работал с SQL, можно немного поподробрней?


← →
Ted   (2004-07-08 14:03) [7]

Мне в запросе нужно сделать выборку все данные с текущего дня + 10 дней...пробовал через add добавлять (date) пишет ошибку....


← →
Ильш ©   (2004-07-08 14:03) [8]

запрос:
select * from tbl
where data=:data

потом в проге
Query1.Prepare;
Query1.ParamByName("date").AsDate=date;
Query1.ExecSQL;
Query1.UnPrepare;


← →
Ted   (2004-07-08 14:04) [9]

> Ильш
Сапасибо огромное... 3 дня убил: ))))


← →
Ильш ©   (2004-07-08 14:04) [10]

заработало что ли?
ты проверь для начала


← →
Ted   (2004-07-08 14:07) [11]

Пробую


← →
Ted   (2004-07-08 14:16) [12]

Работает... показывает все записи с текущей датой... а можно ли задать чтобы показывались записи определенных дат?


← →
Ильш ©   (2004-07-08 14:19) [13]

определенных из периода какого то? типа с такого то по такео то или вообще в разнобой?


← →
Ted   (2004-07-08 14:20) [14]

Вообще прога для вывода дней рождений... т.е. сегодня 8 июля нужно показать все дни рождения на ближайшие 10 дней... Вот такой гимор...
Помоги плиз составить запрос...


← →
Ильш ©   (2004-07-08 14:22) [15]

beetwen используй в запросе...
date beetwen data1 and data2


← →
Ted   (2004-07-08 14:33) [16]

Query1.Prepare;
Query1.ParamByName("date").AsDate=date;
Query1.ExecSQL;
Query1.UnPrepare;
^^^^^^^^^^^^^
Нет не фурычит говорит:
cannot perform this operation on an open dataset


← →
Соловьев ©   (2004-07-08 14:41) [17]


> Query1.ExecSQL;
> Query1.UnPrepare;

Query.Open;


← →
Ted   (2004-07-08 14:45) [18]

>Соловьев

Query1.Prepare;
Query1.ParamByName("Data").AsDate:=Date;
Query1.ExecSQL;
Query1.UnPrepare;
Query1.Open;

Как я понял должно быть так?
И все равно не хочет фурычить....:(((
HELP!!!!!!!!


← →
Соловьев ©   (2004-07-08 14:48) [19]


> Как я понял должно быть так?

нет заменить надо те две строки.
А вот эту строку надо переделать

> Query1.Prepare;

if not Query1.Prepared then Query1.Prepare;


← →
Ted   (2004-07-08 14:53) [20]

>Соловьев

Query1.Prepare;
Query1.ParamByName("Data").AsDate:=Date;
Query1.Open;

Кричит туже ошибку
cannot perform this operation on an open dataset
(((


← →
Соловьев ©   (2004-07-08 14:54) [21]


> 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;


← →
Ильш ©   (2004-07-08 15:00) [22]


> cannot perform this operation on an open dataset
> (((

ну пишет же что открыта база !!!!
закрой


← →
Ted   (2004-07-08 15:01) [23]

>Соловьев
Ура!!!!!! ЗАработало!!!!
Огромное спасибо!!!!
А можно ли задать диапазон дат в запросе через переменные?
Так будет верно?
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:02) [24]


> Query1.ParamByName("Data").AsDate:=Date beetwen data1 and
> data2;

нет. два параметра надо использовать


← →
Ted   (2004-07-08 15:14) [25]

>Соловьев
Пните на путь истинный, плиз...
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;


← →
MORA   (2004-07-08 15:31) [26]


> 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;


← →
MORA   (2004-07-08 15:33) [27]

Короче, вот так:

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:42) [28]

>Соловьев
>Mora
Спасибо за терпение...
Еше глупый вопрос... можно ли в ходе выполнения программы поменять дату... т.е. как получить  data1+10дней?


← →
Соловьев ©   (2004-07-08 15:47) [29]


> т.е. как получить  data1+10дней?

F1+Date function


← →
MORA   (2004-07-08 15:50) [30]


> Еше глупый вопрос... можно ли в ходе выполнения программы
> поменять дату... т.е. как получить  data1+10дней?

Зачем? Ты же и так задаешь диапазон. Дата1 - например сегодняшняя, а Дата2 := Дата1 + 10 дней. Или тебе нужна ф-ция, добавляющая N дней к дате?


← →
Ted   (2004-07-08 15:54) [31]

>Соловьев
>MORA
Дата2 := Дата1 + 10 дней
это мне и надо... но для этого дата1 перевести в string и прибавить 10 или как?


← →
HSolo ©   (2004-07-08 16:04) [32]

> Ted   (08.07.04 15:54) [31]

Или как :)
Поскольку
type  TDateTime = type Double;
то достаточно Дата2 := Дата1 + 10;


← →
MORA   (2004-07-08 16:05) [33]

Тип 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)


← →
Соловьев ©   (2004-07-08 16:07) [34]


>  [32] HSolo ©   (08.07.04 16:04)

через 5 мин еэму надо будет и месяц прибавить или еще ченить...уж лучше если почитает справку :)
F1+TDateTime type
там нажать на See also


← →
Ильш ©   (2004-07-09 09:37) [35]

FAQ - для тех кто задает вопрос... (я никого не имею в виду и ни на кого пальцем не показываю, просто выскажусь)

Вопрос:
Что мне делать???? Спасите!!! Помогите!!! и т.д.

Ответы:
1. F1 - это такая кнопка около Esc... не нашел? Ну кнопка по которой из игрушек выходим.. Воот. Маладец!

2. Yandex - это сайт такой.

3. Поиск по тематическим форумам - это для продвинутых...

4. Задать вопрос здесь.

Почему то многие игнорируют первые три пункта и переходят сразу к четвертому. При чем формулируют его до нельзя непонятно. Хотя есть и плюс в этом - отвечающие тренируют свои способности в чтении мыслей!


← →
ted   (2004-07-21 12:18) [36]

> Ильш ©
Совершенно согласен... )))
Но когда очень мало времени на решение задачи... тогда очень грустно...
Я работаю сисадмином... у меня 78 юзверей... и если ко мне, например подойдет кто-нибудь с вопросом как в ворде сделать проверку орфографии и я его отправлю на f1 это будет не здорово... хотя когда это каждый день устаещь... прекрастно понимаю...
P.S. еще раз всем огромное спасибо за помощь...



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.53 MB
Время: 0.04 c
1-1091028513
Вопрос
2004-07-28 19:28
2004.08.15
Как масштабировать график (TChart) по заданным границам?


4-1088752213
Pank
2004-07-02 11:10
2004.08.15
Модем


14-1090558703
Megabyte-CeerCop
2004-07-23 08:58
2004.08.15
Как получить свой ник, если его занял непонятно кто?


3-1090477274
REA
2004-07-22 10:21
2004.08.15
IB designer


1-1091198512
Antonmm
2004-07-30 18:41
2004.08.15
Новый каталог




   Наверх