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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2009, 09:26   #11
Derius
Пользователь
 
Регистрация: 30.06.2009
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Zibellina Посмотреть сообщение
слушай подскажи если знаешь, как создать дополнительный столбик в дбгрид?
программно - нет ))
видимо проще в Access )
Derius вне форума Ответить с цитированием
Старый 30.06.2009, 09:39   #12
Derius
Пользователь
 
Регистрация: 30.06.2009
Сообщений: 21
По умолчанию

Цитата:
Сообщение от S@fer Посмотреть сообщение
Показывай код. Надеюсь DBGrid связан с тем Query в котором происходит фильтрация?
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, Grids, DBGrids, ExtCtrls, DBCtrls, StdCtrls, Mask;
type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
ADOQuery1: TADOQuery;
Button1: TButton;
LabeledEdit1: TLabeledEdit;
Edit_Search: TEdit;
procedure Edit_SearchKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;

implementation
{$R *.dfm}
procedure TForm1.Edit_SearchKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM [sr] WHERE [Fam] LIKE "'+Edit_Search.Text+'%"');
ADOQuery1.Active:=True;
end;

end.
Derius вне форума Ответить с цитированием
Старый 30.06.2009, 09:42   #13
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

1) С каким компонентом связан DBGrid?
2) В какой из эдитов вводяться данные для поиска?
S@fer вне форума Ответить с цитированием
Старый 30.06.2009, 09:46   #14
Derius
Пользователь
 
Регистрация: 30.06.2009
Сообщений: 21
По умолчанию

Цитата:
Сообщение от S@fer Посмотреть сообщение
1) С каким компонентом связан DBGrid?
2) В какой из эдитов вводяться данные для поиска?
1 - c DataSource1
1 - Edit1 у меня один с закладки Standart
Derius вне форума Ответить с цитированием
Старый 30.06.2009, 09:47   #15
Derius
Пользователь
 
Регистрация: 30.06.2009
Сообщений: 21
По умолчанию

Цитата:
Сообщение от S@fer Посмотреть сообщение
1) С каким компонентом связан DBGrid?
2) В какой из эдитов вводяться данные для поиска?
я там просто еще один ставил - пробовал, вот без него

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, Grids, DBGrids, ExtCtrls, DBCtrls, StdCtrls, Mask;
type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
ADOQuery1: TADOQuery;
Edit_Search: TEdit;
procedure Edit_SearchKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure DBEdit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;

implementation
{$R *.dfm}
procedure TForm1.Edit_SearchKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM [sr] WHERE [Fam] LIKE "'+Edit_Search.Text+'%"');
ADOQuery1.Active:=True;
end;

procedure TForm1.DBEdit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM [sr] WHERE [Fam] LIKE "'+Edit_Search.Text+'%"');
ADOQuery1.Active:=True;
end;

end.
Derius вне форума Ответить с цитированием
Старый 30.06.2009, 09:48   #16
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Цитата:
1 - c DataSource1
А DataSource1 с чем?
Цитата:
1 - Edit1 у меня один с закладки Standart
А это тогда что?
Цитата:
LabeledEdit1: TLabeledEdit;
Пользуйтесь правкой сообщений. и код выделяйте тегами (значок решетки)
S@fer вне форума Ответить с цитированием
Старый 30.06.2009, 10:11   #17
Derius
Пользователь
 
Регистрация: 30.06.2009
Сообщений: 21
По умолчанию

Цитата:
Сообщение от S@fer Посмотреть сообщение
А DataSource1 с чем?

А это тогда что?

Пользуйтесь правкой сообщений. и код выделяйте тегами (значок решетки)
Да LabelEdit1 я уже удалил
Derius вне форума Ответить с цитированием
Старый 30.06.2009, 10:16   #18
Derius
Пользователь
 
Регистрация: 30.06.2009
Сообщений: 21
По умолчанию

Цитата:
Сообщение от S@fer Посмотреть сообщение
А DataSource1 с чем?

А это тогда что?

Пользуйтесь правкой сообщений. и код выделяйте тегами (значок решетки)
Извините, я просто сейчас на работе, прибегу на обед домой - скажу что с чем связано
Derius вне форума Ответить с цитированием
Старый 30.06.2009, 10:16   #19
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

прикрепите сюда проект.
Так будет прще вам помоч
S@fer вне форума Ответить с цитированием
Старый 30.06.2009, 11:20   #20
SlavaSH
Форумчанин
 
Регистрация: 12.08.2008
Сообщений: 174
По умолчанию

Цитата:
Сообщение от S@fer Посмотреть сообщение
Код:
procedure TF_Main.Edit_searchKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  ADOQuery.Active:=False;
  ADOQuery.SQL.Clear;
  ADOQuery.SQL.Add('SELECT * FROM [Tablica] WHERE [FIO] LIKE "'+Edit_Search.Text+'%"');
  ADOQuery.Active:=True;
end;
Поиск происходит при вводе текста в едит
Почему используете событие OnKeyUp???
Лучше всего использовать OnChange.

Попробуйте такой код:
Код:
procedure TForm1.Edit_SearchChange(Sender: TObject);
begin
  ADOQuery.Close;
  ADOQuery.SQL.Text:='SELECT * FROM sr WHERE uCase(Fam) LIKE "'+AnsiUpperCase(Edit_Search.Text)+'%"');
  ADOQuery.Open;
end;
Или можно сделать еще проще:
У ADOQuery сделать запрос с параметром:
Код:
SELECT * FROM sr WHERE uCase(Fam) LIKE :Fam
А в событие OnChange для эдита такой код:
Код:
procedure TForm1.Edit_SearchChange(Sender: TObject);
begin
  ADOQuery.Close;
  ADOQuery.Parameters.ParamByName('Fam').Value:=AnsiUpperCase(Edit_Search.Text)+'%';
  ADOQuery.Open;
end;

Последний раз редактировалось SlavaSH; 30.06.2009 в 11:26.
SlavaSH вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фильтрация Screame Microsoft Office Excel 7 01.07.2009 22:37
Фильтрация Felonalex БД в Delphi 4 24.10.2008 20:09
фильтрация отображения из ADO... Roof БД в Delphi 5 19.08.2008 14:38
Фильтрация по неполному ключу в компонентах ADO ГЫнок Помощь студентам 1 17.08.2008 16:58
Фильтрация Лукманов Александр БД в Delphi 1 26.06.2008 10:18