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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2011, 21:15   #1
Sen San
Пользователь
 
Регистрация: 15.02.2011
Сообщений: 15
По умолчанию нужно организовать поиск в делфи

нужно организовать поиск полю названия в таблице памятники вывод в DBGrid

Вот код процедуры
Цитата:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin

StaticText1.Caption:='';
if ComboBox1.ItemIndex=0 then
begin
Query2.SQL.Insert(5,edit1.Text);
Query2.SQL:=Query2.SQL;
DataSource1.DataSet:=Query2;
Query2.Active:=true;
for i:=0 to Query2.SQL.Count-1 do
StaticText1.Caption:=StaticText1.Ca ption+Query2.SQL[i];
Query2.SQL.Assign(t);

end;

end;
также код sql который испльзую
Цитата:
SELECT *
FROM (Tavtor INNER JOIN Ttip ON Tavtor.id_avtora = Ttip.id_avtora)
INNER JOIN (Tpamat INNER JOIN Traion ON Tpamat.id_pam = Traion.id_pam)
ON Ttip.id_tip = Tpamat.id_tip
where Tpamat.naz like '
%';
посоветуйте кто небудь как это лучше сделать?
Sen San вне форума Ответить с цитированием
Старый 15.02.2011, 21:40   #2
rule-z
Evil is near...
Пользователь
 
Аватар для rule-z
 
Регистрация: 08.03.2009
Сообщений: 49
По умолчанию

То, что ты сказал можно отнести к фильтрации. Итог впринципе один - он показывает искомый результат...

Код:
begin
If LabeledEdit1.Text='' then ShowMessage('Нет параметра для поиска') else
begin
DataModule1.Query1.SQL.Clear();
DataModule1.Query1.SQL.Add('SELECT * From "Delo.db" WHERE (Statya=:Statya)');
DataModule1.Query1.Params[0].AsString:=LabeledEdit1.Text;
DataModule1.Query1.ExecSQL();
DataModule1.Query1.Active:=true;
DBGrid1.DataSource2:=DataModule1.DataSource1;
LabeledEdit1.Text:='';
end;
В LabeledEdit1 вводим по какому значению ищем. Ищем в Delo.db в поле статья к примеру значение из LabeledEdit1.
Программный код всего лишь слово, На свойстве Speak, я False пропишу.
Но помни, когда говорить захочешь снова,
В какое место вставить True я не скажу

Последний раз редактировалось rule-z; 15.02.2011 в 21:43.
rule-z вне форума Ответить с цитированием
Старый 15.02.2011, 21:46   #3
Sen San
Пользователь
 
Регистрация: 15.02.2011
Сообщений: 15
По умолчанию

Цитата:
Сообщение от rule-z Посмотреть сообщение
То, что ты сказал можно отнести к фильтрации. Итог впринципе один - он показывает искомый результат...

Код:
begin
If LabeledEdit1.Text='' then ShowMessage('Нет параметра для поиска') else
begin
DataModule1.Query1.SQL.Clear();
DataModule1.Query1.SQL.Add('SELECT * From "Delo.db" WHERE (Statya=:Statya)');
DataModule1.Query1.Params[0].AsString:=LabeledEdit1.Text;
DataModule1.Query1.ExecSQL();
DataModule1.Query1.Active:=true;
DBGrid1.DataSource2:=DataModule1.DataSource1;
LabeledEdit1.Text:='';
end;
В LabeledEdit1 вводим по какому значению ищем. Ищем в Delo.db в поле статья к примеру значение из LabeledEdit1.
сейчас попробую спасибо
Sen San вне форума Ответить с цитированием
Старый 15.02.2011, 22:02   #4
Sen San
Пользователь
 
Регистрация: 15.02.2011
Сообщений: 15
По умолчанию

что то ничего не получается, или я уже из за того что сижу 4 час за этим не соображаю ничего
Sen San вне форума Ответить с цитированием
Старый 15.02.2011, 22:12   #5
rule-z
Evil is near...
Пользователь
 
Аватар для rule-z
 
Регистрация: 08.03.2009
Сообщений: 49
По умолчанию

Цитата:
Сообщение от Sen San Посмотреть сообщение
что то ничего не получается, или я уже из за того что сижу 4 час за этим не соображаю ничего
Опишите на этот раз, что не так. Я думаю вы прямо копипаст не использовали))))
Программный код всего лишь слово, На свойстве Speak, я False пропишу.
Но помни, когда говорить захочешь снова,
В какое место вставить True я не скажу
rule-z вне форума Ответить с цитированием
Старый 15.02.2011, 22:23   #6
Sen San
Пользователь
 
Регистрация: 15.02.2011
Сообщений: 15
По умолчанию

Цитата:
Сообщение от rule-z Посмотреть сообщение
Опишите на этот раз, что не так. Я думаю вы прямо копипаст не использовали))))
нет, обмозговал переписал под свою бд, не выводит просто ничего в dbgrid

сейчас соберу мозг назад, уже забыл какой вариант работал, но не выводил
просто поймите правельно учусь, сижу с книгами уже все перепробывал не могу сделать
Sen San вне форума Ответить с цитированием
Старый 15.02.2011, 22:32   #7
Sen San
Пользователь
 
Регистрация: 15.02.2011
Сообщений: 15
По умолчанию

вот что я сделал используя ваш код
Цитата:
If Edit1.Text='' then ShowMessage('Нет параметра для поиска') else
begin
Query2.SQL.Clear();
Query2.SQL.Add('SELECT * From (Tavtor INNER JOIN Ttip ON Tavtor.id_avtora = Ttip.id_avtora) INNER JOIN (Tpamat INNER JOIN Traion ON Tpamat.id_pam = Traion.id_pam) ON Ttip.id_tip = Tpamat.id_tip WHERE (Tpamat.naz=:naz)');
Query2.Params[0].AsString:=Edit1.Text;
Query2.ExecSQL();
Query2.Active:=true;
DBGrid1.DataSource:=DataSource1;
Edit1.Text:='';
поставте мне два)))что то я туплю
Sen San вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как организовать поиск по DBGrid ? Fastex C/C++ Базы данных 4 24.01.2011 20:53
нужно организовать обращение к элементу массива в классе! unsurpassed Помощь студентам 0 13.01.2011 11:53
Не могу организовать поиск! teenboy БД в Delphi 3 03.05.2010 17:17
Нужно организовать формулу в конструкторе Ksy Microsoft Office Access 10 26.04.2010 20:53
как организовать поиск по дате... Pitbull БД в Delphi 18 24.06.2007 22:28