Поиск:

Ответ в темуСоздание новой темы Создание опроса
> поиск по DBgrid и вывод в StringGrid, Поиск и вывод повторяющихся данных 
V
    Опции темы
ilmurat
Дата 6.10.2010, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 5.10.2010

Репутация: нет
Всего: -1



Здравствуйте, у меня возник такой вопрос можно ли реализовать поиск по первым 3 буквам фамилии имени и отчества в DBgrid и чтобы после завершения поиска все похожие значения выводильсь в StringGrid? Да ихотелось бы сделать так чтобы из StringGrid можно было вятянуть определенную запись на форму для редактирования, заранее Спасибо.
PM MAIL   Вверх
Frees
Дата 6.10.2010, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54



Цитата(ilmurat @  6.10.2010,  13:45 Найти цитируемый пост)
можно ли реализовать поиск по первым 3 буквам фамилии имени и отчества в DBgrid

DBgrid не содержит данных, поиск надо делать в источнике данных для него (DataSet).

в DataSet можно перебрав все записи, и проверить каждую, если она удовлетворяет условию то добавить ее в StringGrid;
либо сделать отдельны SQL запрос и получить только нужные данные.

и не понятно зачем нужен StringGrid, если уже используете DBgrid?


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Данкинг
Дата 6.10.2010, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Конечно можно, только это логичней всего сделать запросом. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
ilmurat
Дата 6.10.2010, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 5.10.2010

Репутация: нет
Всего: -1



делаю базу данных, на первой форме у меня DBgrid со вземи значениями из базы есть 3 edita для ввода букв по которым проводится поиск , который я делал с помощью Locate. но он только выделяет найденную строку в DBgride, и даже если значения повторяются он выбирает одно из них не знаю по какому принципу. А нужно сделать так чтобы при нажатии на кнопку поиска открывалась новая форма, куда собственно и выводились все результаты поиска. и уже оттуда при нажатии на кнопку редактировать открывалась форма редактирования данных, эта форма у меня есть. smile 
PM MAIL   Вверх
Frees
Дата 6.10.2010, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54



поидее форма списка длжна открывать себя же (а может и просто изменять список в себеже ,тогда кури свойство Filter)но только с параметрами поиска... намек ясен?
если нет то расскаыавай что за компоненты доступа какие там запросы у тебя написаны.

Это сообщение отредактировал(а) Frees - 6.10.2010, 11:23


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
ilmurat
Дата 6.10.2010, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 5.10.2010

Репутация: нет
Всего: -1



ребят я не знаю как вам объяснить и чесно говоря вас немного не допонимаю так как делфи учил с книжек, и начал этим заниматься не давно. Вообщем поиск у меня реализован только он мне не подходит он только выделяет мне первые найденные значения т.е если значения повторяются он мне выводит только одно из них , НАПРИМЕР (АЛЕксеева АЛЕна АЛЕксеевна и АЛЕксеев АЛЕксандр АЛЕксандрович) он просто выделит в DBgride 1 Из этих данных.

Добавлено через 1 минуту и 17 секунд
а нужно чтобы в StringGrid Выводились все.

Добавлено через 1 минуту и 38 секунд
Как это можно сделать???
PM MAIL   Вверх
Frees
Дата 6.10.2010, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54



Цитата(ilmurat @  6.10.2010,  14:34 Найти цитируемый пост)
а нужно чтобы в StringGrid Выводились все.

почему именно StringGrid

Добавлено через 34 секунды
Цитата(ilmurat @  6.10.2010,  14:34 Найти цитируемый пост)
Как это можно сделать???

через Filter. покажи как у тебя сделан поиск


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
ilmurat
Дата 6.10.2010, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 5.10.2010

Репутация: нет
Всего: -1



ffield := 'Имя';
ffield1 := 'Фамилия';
ffield2 := 'отчество';
fvalue := edit2.text;
fvalue1 := edit1.text;
fvalue2 := edit3.text;
opts := [loCaseInsensitive,loPartialKey];

if not AdoTable1.Locate(ffield, fvalue, opts) then
if not AdoTable1.Locate(ffield1, fvalue1, opts) then
if not AdoTable1.Locate(ffield2, fvalue2, opts) then
ShowMessage('Не найденно');
end;


Не обязательно в StringGrid просто чтобы было наглядно видно сколько строк данных есть и из них выбрать нужную мне для редактирования

PM MAIL   Вверх
Frees
Дата 6.10.2010, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54



Код

ffield := 'Имя';
ffield1 := 'Фамилия';
ffield2 := 'отчество';
fvalue := Trim(edit2.text);
fvalue1 := Trim(edit1.text);
fvalue2 := Trim(edit3.text );

AdoTable1.Filter := ' (' + ffield  + ' LIKE ' + QuotedStr(fvalue + '%')  +') AND ' + //тут надо проверить правильность LIKE
                    ' (' + ffield1 + ' LIKE ' + QuotedStr(fvalue1 + '%') +') AND ' +
                    ' (' + ffield2 + ' LIKE ' + QuotedStr(fvalue2 + '%') +')';
AdoTable1.Filtered := (fvalue <> '') and (fvalue1 <> '') and (fvalue2 <> '');

if AdoTable1.RecordCount = 0 then
  ShowMessage('Не найденно');


Это сообщение отредактировал(а) Frees - 6.10.2010, 12:04


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
ilmurat
Дата 6.10.2010, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 5.10.2010

Репутация: нет
Всего: -1



огромное за это спасибо, работает отлично  smile  , но как теперь вернуть DBgrid в первоначальную форму??
PM MAIL   Вверх
Frees
Дата 6.10.2010, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54



стереть все в едитах

Добавлено через 23 секунды
тогда будет AdoTable1.Filtered := false


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
ilmurat
Дата 6.10.2010, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 5.10.2010

Репутация: нет
Всего: -1



СПАСИБО, КАК СМОГУ ОБЯЗАТЕЛЬНО +++ smile 
PM MAIL   Вверх
ilmurat
Дата 16.11.2011, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 5.10.2010

Репутация: нет
Всего: -1



Спасибо еще раз пригодилось в армии)))))) smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.1004 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.