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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.07.2010, 15:05   #1
WindRunner
 
Аватар для WindRunner
 
Регистрация: 30.07.2010
Сообщений: 7
Вопрос

Здравствуйте! Я создаю базу данных на sql сервере (использую для этого вкладку InterBase, а именно: IBDatabase; IBTransaction; IBDataSet1 и DataSource с вкладки Data Access). Мне необходимо организовать поиск сотрудников по реквизитам (всего у меня 3 реквизита: наименование, ИНН и КПП). Желательно чтобы это было с использованием RadioGroup - для выбора по какому параметру будет производиться поиск ; Edit - для ввода слова для поиска и Button - кнопки, по щелчку которой будет выполняться поиск.
Опишите пожалуйста подробно как сделать поиск, а то я в программировании новичёк =( , а практику сдавать уже скоро.
Или дайте ссылку где это можно прочитать (поиск ИМЕННО в InterBase!). В интернете ничего существенного по этому вопросу не нашел.
Так что очень надеюсь на помощь профессионалов =)

Нашел поиск (а если быть точнее фильтрацию), но это для вкладки FIBPlus. На форму добавляется CheckBox (выбор по какому параметру будет производиться фильтрация) и Edit (для ввода слова для поиска).

Код:
procedure TfmTablesca.Edit1Change(Sender: TObject);
var
  fn:string;
begin
   fn:=' ';
   if(CheckBox1.Checked) and (Edit1.Text<> '') then
     begin
        fn:='(NAME LIKE'''+Edit1.Text+'%'')';
        dmAgent.dstCA.Close;
        dmAgent.dstCA.MainWhereClause:=fn;
        dmAgent.dstCA.Open;
     end
    else
      begin
         dmAgent.dstCA.Close;
         dmAgent.dstCA.MainWhereClause:=fn;
         dmAgent.dstCA.Open;
      end;

end;
и точно такая же процедура пишется для CheckBox.
Так вот проблема в том что компилятор не читает MainWhereClause в процедуре (т.к. это используется для FIBPlus). Как можно заменить MainWhereClause для использования в InterBase?

Последний раз редактировалось Stilet; 30.07.2010 в 15:25.
WindRunner вне форума Ответить с цитированием
Старый 30.07.2010, 15:23   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А IBQuery? Не пользуешь таким?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.07.2010, 15:26   #3
WindRunner
 
Аватар для WindRunner
 
Регистрация: 30.07.2010
Сообщений: 7
По умолчанию

Я новичок =( я с этим не работал. Можно и с IBQuery, только как? Подскажаите плиз.
Как нужно настроить этот элемент и какую процедуру использовать?

Последний раз редактировалось WindRunner; 30.07.2010 в 15:28.
WindRunner вне форума Ответить с цитированием
Старый 30.07.2010, 15:36   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Увы у меня нет IB но...
http://www.ibase.ru/devinfo/ibx.htm - это чтиво
Думаю поможет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.07.2010, 15:42   #5
WindRunner
 
Аватар для WindRunner
 
Регистрация: 30.07.2010
Сообщений: 7
По умолчанию

Спасибо, я это читал, но там только написаны sql запросы и описание элементов, если честно, я не особо там понял как это всё увязать с RadioGroup, Edit и Button =( вот надеялся что мне попроще объяснят что и куда =) там же сложного то ничего не должно быть! поиск обычный, по одной таблице
WindRunner вне форума Ответить с цитированием
Старый 31.07.2010, 15:16   #6
WindRunner
 
Аватар для WindRunner
 
Регистрация: 30.07.2010
Сообщений: 7
По умолчанию

А как насчет этого????

Код:
procedure TfmTablesca.Edit1Change(Sender: TObject);
var
fn:string;
begin
fn:=' ';
if(CheckBox1.Checked) and (Edit1.Text<> '') then
begin
fn:='(NAME LIKE'''+Edit1.Text+'%'')';
dmAgent.dstCA.Close;
dmAgent.dstCA.MainWhereClause:=fn;
dmAgent.dstCA.Open;
end
else
begin
dmAgent.dstCA.Close;
dmAgent.dstCA.MainWhereClause:=fn;
dmAgent.dstCA.Open;
end;

end;


как можно заменить MainWhereClause? чтобы в Interbase скомпилировалось? плиз, ответьте кто нибудь
WindRunner вне форума Ответить с цитированием
Старый 31.07.2010, 23:46   #7
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

вся прелесть в том что поиск во всех субд будет написн практически одним и тем же кодом
вся разница в том какие использовать для этого компоненты
ваш "мейнверклоз" - это уже какой-то самодописный компонент датасета
не морочьте себе и нам голову
примеров поиска по БД на этом форуме полно
soleil@mmc вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск данных в нескольких таблицах a_n_n_a БД в Delphi 10 23.04.2010 11:33
Поиск несоответствий в двух таблицах Stevan Microsoft Office Excel 3 03.02.2010 11:35
Поиск в 2-ух таблицах через запрос icome Microsoft Office Access 3 26.08.2008 18:14
Поиск изменений в Таблицах Pabelu Microsoft Office Excel 3 26.04.2008 17:57
Регистр в таблицах БД Alexij БД в Delphi 3 17.04.2008 13:38