| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > Получение номера ключевого поля |
| Автор: igorz89 5.5.2009, 15:11 |
| Допустим, у нас на форме отображена таблица (sql) с использованием DBGrid (ключевые поля не выведены). Можно в Дельфи получить значение ключевого поля, просто выделив любую ячейку, не используя запрсы SQL? |
| Автор: vovk 5.5.2009, 15:21 |
| Если поля есть в датасете (какой там у вас не знаю TQuery, TIBQuey, Tdataset в общем не важно) , а в гриде просто скрыты то конечно да. Если же вы не запрашивали данные по этим полям то нет. Хотя если написать допустим хранимую процедуру которая вернёт вам эти данные.... А вообще без обращения к базе никак.. |
| Автор: insoft 5.5.2009, 15:21 | ||
как ты отображаешь НД в гриде? через TTable или через TQuery? |
| Автор: igorz89 5.5.2009, 15:35 |
| У меня 3 компонента: query1, datasource1 и dbgrid1. Сам запрос находится в query1, у datasource1 в свойстве dataset указан этот самый query1, а у dbgrid1 в свойстве datasource указан datasource1. Вот, допустим, таблица "sotrudniki", в ней 2 поля: id(первичный ключ) и name: id name 1 Вася 2 Федя 3 Паша 4 Саша Я пишу запрос select name from sotrudniki, мне все выводит как надо без id. Теперь я выделяю, допустим имя Паша, и хочу узнать его id, но при этом не используя запроса типа select id from sotrudniki where name='Паша'. Вот собственно в этом вопрос. |
| Автор: vovk 5.5.2009, 15:39 |
| Особо не напрягайтесь если в запросе не указывали поле ID то и данных соответственно нет. |
| Автор: igorz89 5.5.2009, 15:49 |
| Так, а если в самом запросе сделать выборку всех полей, но при этом в DBgrid выводить опять же только имя, то тогда как можно получить соответсвующий id выделенному полю? |
| Автор: vovk 5.5.2009, 15:56 | ||
| Если данные в датасете есть, то так как сказал insoft, в 3 посте самое оно, то есть для вас будет выглядет так
Так на всякий. Мы получим значение поля ID текущей записи Query1. |
| Автор: igorz89 5.5.2009, 16:14 |
| vovk, insoft, спасибо вам за помощь! |