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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2009, 22:14   #1
Sinker
Пользователь
 
Регистрация: 23.03.2009
Сообщений: 27
Вопрос Как выводить значения отдельных полей таблицы при выборе записи в DBGrid

Народ, вот такая проблемка:
У меня имееться DBGrid, в котором через ADOQuery выбрано к примеру 1,2,3,5 столбец из таблицы, мне надо сделать так, что бы по выбору строки в DBGrid и нажатию кнопки, выводилось например в DBMemo ячейка из таблицы (выделенная строка х 4 столбец).... Надеюсь понятно изьяснил Буду признателен за помощь!

Последний раз редактировалось Sinker; 24.03.2009 в 22:46.
Sinker вне форума Ответить с цитированием
Старый 24.03.2009, 23:37   #2
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

если верно понял, те нужно просто привязать ДБМемо в тому же полю что и 4-й столбец в ДБГриде и все
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 24.03.2009, 23:43   #3
Sinker
Пользователь
 
Регистрация: 23.03.2009
Сообщений: 27
По умолчанию

Попробую сформулировать проще, как вывести одну ячейку в Мемо, из выделенной строки в DBGrid?
Sinker вне форума Ответить с цитированием
Старый 24.03.2009, 23:51   #4
Антон Ю.Б.
Форумчанин
 
Регистрация: 03.01.2009
Сообщений: 116
По умолчанию

Sinker, привыкайте, что DBGrid - это только средство отображения и доступа к редактированию. Нет понятия текущей строки в таблице, есть понятие текущей строки в открытом наборе данных. Компонент доступа к открытому набору данных (Query, Table, DataSet - зависит от выбранного инструментария) может содержать (и обычно содержит) больше полей, чем отображается в DBGrid. Если Вам что-то требуется, то это не операции со строкой из таблицы, а операции со значениями типа ADOQuery.FieldByName('MyName').As.. . с предварительной проверкой набора данных на Active и not(ADOQuery.IsEmpty)
Антон Ю.Б. вне форума Ответить с цитированием
Старый 25.03.2009, 00:09   #5
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,603
По умолчанию

Если эта текущая выделенная ячейка, то можно так:
Код:
memo1.Text:= DBGrid1.SelectedField.AsString;
Привязывайте этот код хоть к клику на кнопке, хоть к DBGrid1CellClick или DBGrid1DblClick.

Так же, нужно проверять, в каком режиме находится DataSource, с помощью свойства State, которое отображает текущее состояние связанного с ним набора данных, т.к. при закрытом наборе данных вылетит ошибка.
Полный вариант такой:

Код:
 if DataSource1.State = dsBrowse then
  memo1.Text:= DBGrid1.SelectedField.AsString;

Последний раз редактировалось Gorychev; 25.03.2009 в 01:14.
Gorychev вне форума Ответить с цитированием
Старый 25.03.2009, 01:22   #6
Sinker
Пользователь
 
Регистрация: 23.03.2009
Сообщений: 27
По умолчанию

Блин, тяжело быть дураком...когда объяснить даже толком не могу что хочу =))) Короче, попытка номер 3 =)
Я вывожу в DBGrid через ADOQuery часть таблицы (номер, купленная книга, дата покупки), и мне надо сделать так, что бы при выборе одной из купленных книг, по щелчку на кнопке в другом окне выводилось поле(инфо о книге) и именно одна конкретная инфа по выбранной книге. Все поля (номер, купленная книга, дата покупки,инфо о книге) в одной таблице.
Sinker вне форума Ответить с цитированием
Старый 25.03.2009, 09:09   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Когда ты выбираеш в ДБГриде строку он в наборе на нее перескакивает.
Поэтому в другой форме по клику на кнопке получай из этого поля инфу так:.
В том случае если у тебя инфа хранится в поле строкового типа
Код:
Переменная:=Form1.ADOQuery.FieldByName(Тут имя поля с инфой).AsString;
Далее эту переменную вгоняй в какой нить Лабель.

Если инфа хранится в поле типа Мемо то на вторую форму кинь ДБМемо, свяжи его с DataSet который связан с ADOQuery и укажи из какого поля получать данные. Он автоматом их подчитает как только в ДБГриде ты выбереш строку.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.03.2009, 10:05   #8
Andrei
Форумчанин
 
Регистрация: 20.06.2007
Сообщений: 270
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Когда ты выбираеш в ДБГриде строку он в наборе на нее перескакивает.
Поэтому в другой форме по клику на кнопке получай из этого поля инфу так:.
В том случае если у тебя инфа хранится в поле строкового типа
Код:
Переменная:=Form1.ADOQuery.FieldByName(Тут имя поля с инфой).AsString;
Далее эту переменную вгоняй в какой нить Лабель.
Это можно сделать проще. На вкладке Data Controls имеется компонент DBText. Кидаешь его на форму и связываешь с нужным полем датасета. И никаких кнопок не надо. Информация будет отображаться сразу как только перейдешь на запись.
-Кукушка, кукушка! Накукуй мне сто лет!
-А накукуй тебе столько?

(с) Библия. Вольный перевод с древнееврейского.

Последний раз редактировалось Andrei; 25.03.2009 в 10:11.
Andrei вне форума Ответить с цитированием
Старый 25.03.2009, 10:07   #9
Sinker
Пользователь
 
Регистрация: 23.03.2009
Сообщений: 27
По умолчанию

Спасибо Андрей, на конец то хоть кто то меня понял =))) Все получилось!
Sinker вне форума Ответить с цитированием
Старый 25.03.2009, 12:28   #10
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

скажу даже больше - есть DBMemo
soleil@mmc вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
при добавлении новой записи через форму подставлолось значение из другой таблицы Baxxter Microsoft Office Access 1 07.01.2009 22:23
Передача данных из одной таблицы в другую, при выборе одной ячейки MickMick Microsoft Office Excel 6 06.10.2008 13:57
Ошибка при попытке вывода полей из таблицы в ORACLE older Общие вопросы Delphi 2 04.06.2008 17:26
возможно ли выводить данные из полей типа Edit, ComboBox, ... и отчетах Rave ГОСЕАН БД в Delphi 2 05.03.2008 13:28
Вывод сообщения на экран при выборе из списка определенного значения MaGistR Microsoft Office Excel 1 31.01.2008 09:10