![]() |
|
Модераторы: LSD |
![]()
|
|
| scorp |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 13.12.2002 Репутация: нет Всего: нет |
Не подоскажите как лучше организовать поиск например работника по фамилии с помощью храномой процедуры, так чтобы в компоненте DBGrid сохранились все записи обо всех работниках, но курсор стал напротив искомой записи?
если конечно такое возможно. |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
А в чём прикол использования Stored Procedurе? Ты же уже все данные вытянул и в грид положил, чтобы позиционировать курсор достаточно что-то типа Locate или FindKey, a Stored Procedurе хорошо когда тебе не надо вытягивать все данные и выполнять кверю на сервере.В данном случае Stored Procedurе приведёт к тому что физически эта кверя будет выполняться 3 раза!
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| scorp |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 13.12.2002 Репутация: нет Всего: нет |
Так то оно так, я тоже понимаю что это не оптимально, однако препод - он и в Африке препод. Ну захотелось ему так. Сделаю через FindNearest - пусть так принимает....
Спасибо Vit |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 3 Всего: 154 |
Для использования FindNearest поле, по которому производиться поиск должно быть индексированно, я предпочитаю использовать Locate ([loCaseInsensitive, loPartialKey]).
-------------------- |
|||
|
||||
| scorp |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 13.12.2002 Репутация: нет Всего: нет |
Пегас, причём тут Locate, я в делфах тоже знаю 4 способа. Ты читай вопрос: Нужно сделать ХП...............
|
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 3 Всего: 154 |
А ты почитай сначала выше замечание Vit-а, а затем и мое..... -------------------- |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
Ладно, не надо прирекаться. Если честно то я не знаю как это сделать, практически я знаю 4 варианта установить курсов в DBGrid и не совсем понимаю каким образом сюда прилепить процедуру:
1) Locate 2) FindKey 3) перебором 4) через какой-нибудь Lookup контрол -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 3 Всего: 154 |
Всего существует 5 методов изменения курсора НД:
First, Last, Next, Prior, MoveBy. И все.... GoToKey, GoToNearest, FindNerest, Findkey, Locate - это поиск, с переводом курсора. Lookup - поиск без перевода курсора, здесь следует четко разграничить методы изменения курсора НД, и методы поиска (подчеркиваю методы поиска) с переводом или не переводом курсора.... -------------------- |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Сделать, чтобы нужная запись шла первой Тогда при открытии/переоткрытии автоматом становимся на эту запись. И при этом всякие там Locate не используются "Я так думаю" (С) "Мимино" |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 3 Всего: 154 |
Ладно, вот алгоритм.... хот я считаю эту задачу абсурдной....но раз как говорит scorp ему преподаватель задал, то вот такой же абсурдный ответ:
1) В хранимую процедуру задается входной параметр, по которому производиться поиск; (например "Иванов"); 2) В хранимой процедуре выбираются запись, которая соответствуют критерию поиска (например SELECT ID FROM Sotrud WHERE FIO = 'Иванов'), и возвращается ID этой записи; 3) Осуществляется поиск с позицианированием курсора, по тому НД, который отражет в DBGrid. Т.е. Находиться запись с тем ID, который вернула хранимая процедура. Если честно, я сомневаюсь, что преподаватель мог задать такую задачу...... -------------------- |
|||
|
||||
| scorp |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 13.12.2002 Репутация: нет Всего: нет |
Наш препод мог ))
Всем спасиба, сейчас что-то замучу, если не получиться, то сделаю замениткль. Ещё раз спасиба. |
|||
|
||||
![]()
|
| Правила форума "Общие вопросы по базам данных" | |
|
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |