Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 19.10.2010, 08:05   #1
D.O.G
Форумчанин
 
Регистрация: 06.08.2010
Сообщений: 101
По умолчанию Поиск по диапазону.

Есть sql запрос
Код:
SELECT * FROM zamena where datas>=(d1) and datas<=(d2)
хранится в процедуре mysql. Как передать перемные d1,d2 из формы delphi?
D.O.G вне форума
Старый 19.10.2010, 09:07   #2
new player
Форумчанин
 
Регистрация: 30.08.2010
Сообщений: 153
По умолчанию

Код:
SELECT * FROM zamena where datas>='''+d1+''' and datas<='''+d2+''''
или вместо d1, к примеру, Edit1.Text
new player вне форума
Старый 19.10.2010, 14:43   #3
D.O.G
Форумчанин
 
Регистрация: 06.08.2010
Сообщений: 101
По умолчанию

Пошел другим путем. Сделал поиск по dbgrid
Код:
procedure TForm6.Button1Click(Sender: TObject);
 var
 d1,d2:string;
begin
 d1:=Edit1.Text;
 d2:=Edit2.Text;
 ClientDataSet1.Filtered:=false;
 ClientDataSet1.Filter:='cabin>=' + d1 + 'cabin<=' + d2;
 ClientDataSet1.Filtered:=True;

end;
в общем нужно сделать поиск по диапозону. Помогите плизз.
D.O.G вне форума
Старый 19.10.2010, 15:46   #4
new player
Форумчанин
 
Регистрация: 30.08.2010
Сообщений: 153
По умолчанию

Зачем поиск?
new player вне форума
Старый 19.10.2010, 16:29   #5
D.O.G
Форумчанин
 
Регистрация: 06.08.2010
Сообщений: 101
По умолчанию

в общем надо найти данные в определенном диапазоне. полученные дынные будут формироваться и отправлятся в форму fastreport'а
D.O.G вне форума
Старый 19.10.2010, 21:26   #6
Dimasw
Пользователь
 
Регистрация: 12.09.2010
Сообщений: 69
По умолчанию

При создании процедуры:

CREATE PROCEDURE `MyProcedure`(in D1 int,D2 int)
begin
SELECT * FROM zamena where datas>=(d1) and datas<=(d2)
end;

Я использую компоненты MyDAC, там есть компонент MyStoredProc, которому назначаю свойство StoredProcName=MyProcedure,
после чего могу назначать значения параметрам
MyStoredProc1.Params[0].value:=10
или
MyStoredProc1.Parambyname('d1').ass tring:='бла-бла'
или
MyStoredProc1.Parambyname('d1').asi nteger:=10

В ADO подозреваю, что тоже самое. Но с ADO я лично толком не работал, т.к. глюков много с MySQL. Сразу психанул и поставил MyDAC
SELECT BEST FROM LIFE
Dimasw вне форума
Старый 25.10.2010, 09:01   #7
D.O.G
Форумчанин
 
Регистрация: 06.08.2010
Сообщений: 101
По умолчанию

Помогите написать обработчик. понять не могу. вот то что попробывал
Код:
 d1:=StrToInt(Edit1.Text);
 d2:=StrToInt(Edit2.Text);
 ClientDataSet1.Params.Clear;
 SQLDataSet1.Close;
 ClientDataSet1.Close;
 SQLStoredProc1.Params[0].Value:=d1;
 SQLStoredProc1.Params[1].Value:=d2;
 SQLStoredProc1.ExecProc;
 ClientDataSet1.Open;
 SQLDataSet1.Open;
Доброе утро. сделал обработчик событий
Код:
procedure TForm6.Button1Click(Sender: TObject);
var
 d1, d2:Integer;
begin
 d1:=StrToInt(Edit1.Text);
 d2:=StrToInt(Edit2.Text);
 ClientDataSet1.Close;
 SQLDataSet1.Close;
 MyStoredProc1.Prepare;
 MyStoredProc1.Params[0].AsInteger:=d1;
 MyStoredProc1.Params[1].AsInteger:=d2;
 MyStoredProc1.ExecProc;
 SQLDataSet1.Open;
 ClientDataSet1.Open;
ни каких действий не происходит по нажатию кнопки. помогите разобраться.

Последний раз редактировалось artemavd; 28.10.2010 в 07:32.
D.O.G вне форума
Старый 28.10.2010, 07:32   #8
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Напишу пример:
Код:
procedure TForm6.Button1Click(Sender: TObject);
var
 d1, d2:Integer;
begin
 FIBQuery1.Close;
 FIBQuery1.SQLs.SelectSQL.Text:='select * from zamena where (datas >=:d1) and (datas<=:d2)';
 FIBQuery1.Open;
 FIBQuery1.ParamByName('d1').Value:=StrToInt(Edit1.Text);
 FIBQuery1.ParamByName('d2').Value:=StrToInt(Edit2.Text);
end;
Точно не помню, но как-то так. Смысл в том, что сначала нужно записать синтаксически правильно запрос и указать откуда будут браться значения в качестве параметром, а потом указать что и откуда будут в эти параметры передаваться. Мой код может быть неверн, т.к. писал на память. Камнями не кидать!
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума
Старый 28.10.2010, 07:47   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
хранится в процедуре mysql.
Функции может? Ты не ошибся?
I'm learning to live...
Stilet вне форума
Старый 28.10.2010, 08:10   #10
D.O.G
Форумчанин
 
Регистрация: 06.08.2010
Сообщений: 101
По умолчанию

сделал вот так:
Код:
SQLDataSet1.Close;
 SQLDataSet1.CommandText:='';
 SQLDataSet1.CommandText:='SELECT * FROM zamena WHERE cabin>=(d1) and cabin<=(d2)';
 SQLDataSet1.Open;
 SQLDataSet1.ParamByName('d1').Value:=StrToInt(Edit1.Text);
 SQLDataSet1.ParamByName('d2').Value:=StrToInt(Edit2.Text);
выдает ошибку
Цитата:
unknown column 'd1' in 'where clause'
Цитата:
Сообщение от Stilet Посмотреть сообщение
Функции может? Ты не ошибся?
нет не ошибаюсь в процедуре

Последний раз редактировалось artemavd; 28.10.2010 в 08:36.
D.O.G вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск по диапазону и подстановка значения в зависимости от результата Propinol Microsoft Office Excel 17 02.04.2012 21:35
Вычисление с выборкой по диапазону VadimSh Microsoft Office Excel 4 18.10.2010 18:08
Фильтрация по диапазону. D.O.G БД в Delphi 12 18.08.2010 10:02
Выборка номеров по диапазону zenner Microsoft Office Excel 14 23.06.2010 15:22
Форма фильтрации по диапазону Малой БД в Delphi 3 24.02.2010 13:24