Текущий архив: 2004.08.15;
Скачать: 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 = :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;
← →
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 вся ветка
Текущий архив: 2004.08.15;
Скачать: CL | DM;
Память: 0.52 MB
Время: 0.037 c