|
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
|
||||||
Как получить id выделенной записи в DBGrid?05.07.2015, 17:21. Показов 7508. Ответов 22
Метки нет (Все метки)
Перепробовал всё! Почему вот это не работает?
0
|
||||||
| 05.07.2015, 17:21 | |
|
Ответы с готовыми решениями:
22
Как вывести отчет по выделенной записи в DBGrid? Как вывести отчет по выделенной записи в DBGrid? Как получить номер записи выбранной в DBGrid |
|
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,609
|
|
| 05.07.2015, 17:45 | |
|
Что ты понимаешь под "id выделенной записи"?
1
|
|
|
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
|
|
| 05.07.2015, 18:00 [ТС] | |
|
northener, аналог-itemindex в ListBox
0
|
|
|
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,609
|
|
| 05.07.2015, 19:17 | |
|
1
|
|
|
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
|
|
| 05.07.2015, 19:18 [ТС] | |
|
northener, неужели нельзя узнать index выбранной записи? Для чего же тогда этот dbgrid1.Columns.Items.Index?
0
|
|
|
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,609
|
|||
| 05.07.2015, 19:25 | |||
|
Зачем это тебе нужно?
1
|
|||
|
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
|
|
| 05.07.2015, 22:19 [ТС] | |
|
northener, видите ли, в чем дело.. При клике на какую-либо строчку содержимое всех полей отображается в Edit'ах для удобного изменения. Когда я делаю какое-либо действие, например, изменение, а потом хочу увидеть результат, я делаю запрос SQL.Text:='select * from pupil'; Open; и у меня сразу обновляется DBGrid. Но строчка, которая была выделена для изменения, уже не выделена, а выделена оказывается первая строчка. А пользователь по невнимательности может продолжить изменять старую строчку, потом нажмет кнопку изменить, а изменения сделаются в первой строчке(а в Edit'ах так и останется старая инфа, так как не было клика на строчку). Надеюсь понятно объяснил, вот скриншоты:
После нажатия кнопки "вывести все": Так вот я хочу запомнить номер выделенной строки до нажатия на кнопку, а затем после выполнения процедуры выделить программно заново эту строку.
0
|
|
|
|
|
| 05.07.2015, 23:15 | |
|
как всегда
не надо помогать делать то что не надо делать если требуется не просто выводить данные в DBGrid но еще и редактировать их, смотрите на ADODataset (подозреваю, что речь, как всегда, про ADO) там должен быть метод Refresh для обновления одной записи. Но все в ADO работает странно, может и Refresh быть не торт. тогда универсальный метод: перед Close/Open нужно запомнить, на какой записи вы стоите (надеюсь, вы в курсе, что такое ключевые поля), и после Open сделать Locate на неё P.S.1 плохая практика тянуть все поля таблицы через select * указывайте конкретный список P.S.2 Значение SQL.Text никуда не девается, не надо каждый раз его заполнять, если запрос не изменялся. Просто Open. P.S.3 Для редактирования полей обычно применяется DBEdit а не Edit, если уж вас не устраивает редактирование прямо в гриде
1
|
|
|
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
|
|
| 05.07.2015, 23:19 [ТС] | |
|
krapotkin, программу пишу не для настоящего предприятия, поэтому о таких вещах не хотелось задумываться, просто интересно стало про Index.
P.S. а как потом применять изменения, если редактировать в гриде сразу?
0
|
|
|
|
|
| 05.07.2015, 23:25 | |
|
грид работает с датасетом
в датасете прописываются все 4 вида SQL запросов select update delete insert а еще отдельно Refresh - select для обновления только одной записи кроме написания запросов, больше от программиста ничего не требуется
1
|
|
|
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
|
|
| 05.07.2015, 23:26 [ТС] | |
|
krapotkin,
А что в Locate передавать кроме ключевого поля? Зачем вторые два параметра? Не хотелось пока просто разбираться с DataSet'ом
0
|
|
|
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,609
|
|||
| 06.07.2015, 01:00 | |||
|
Добавлено через 4 минуты
1
|
|||
|
|
||||||
| 06.07.2015, 10:40 | ||||||
|
northener,
в TDataset есть метод Refresh - там задается именно SQL обновления одной записи наследники TDataset должны реализовывать его самостоятельно IBX FIB отлично с этим справляются про ADO - не знаю, но на уровне DBGrid получается поддержка Refresh "из коробки" в качестве SQL там обычно тот же Select с добавлением чего-то типа
1
|
||||||
|
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
|
|
| 06.07.2015, 10:52 [ТС] | |
|
northener, хорошая идея
0
|
|
|
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,609
|
|||
| 07.07.2015, 02:53 | |||
![]()
1
|
|||
|
103 / 91 / 32
Регистрация: 30.05.2015
Сообщений: 594
|
|
| 08.07.2015, 12:40 | |
|
dataset.fieldbyname('id').asInteger
0
|
|
|
1 / 1 / 0
Регистрация: 13.03.2016
Сообщений: 5
|
||||||
| 20.04.2018, 10:02 | ||||||
|
Да простит бог за ниже изложенное:
Ищет в DBGride позицию из Едита (id.Text) и останавливается. Другого решения нет, ибо как и писали выше Грид - это просто сетка.
0
|
||||||
|
1 / 1 / 0
Регистрация: 13.03.2016
Сообщений: 5
|
||
| 20.04.2018, 10:29 | ||
|
Человеку надо было выделить редактируемый элемент после обновления грида. При чем тут SQL запрос и фильтр?
0
|
||
| 20.04.2018, 10:29 | |
|
Помогаю со студенческими работами здесь
20
Как оставлять фокус на выделенной ячейке DBGrid
Как получить имя столбца выделенной ячейки? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|