|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.11.2012, 06:19 | #1 |
Пользователь
Регистрация: 07.12.2009
Сообщений: 46
|
Заполнить данными столбец DBGrid
Доброго времени суток всем! Жестко туплю над следующей задачкой. В DBGrid создал дополнительный столбец. Этот столбец необходимо заполнить данными. Не понимаю как присвоить значение конкретной ячейке моего столбца в DBGrid? Для работы с БД юзаю ADOConnection, DataSource1, ADOQuery1 (инфа на всякий случай). Буду очень благодарен!
|
16.11.2012, 07:05 | #2 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Связать столбец с соответствующим полем таблицы/запроса, которую отображает DBGrid
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
16.11.2012, 07:59 | #3 |
Участник клуба
Регистрация: 23.04.2009
Сообщений: 1,058
|
Если столбца нет физически в базе то можно его создать в запросе... вы покажите запрос и что нужно отобразить в доп столбце.
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
|
16.11.2012, 09:26 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
BARNEY, +1
samouelson, если столбец в БД (в таблице есть), то его нужно добавить в ADOQuery (в набор полей в select) и, если в DBGrid поля добавлены, тогда добавить ещё один столбец, который связать по имени с полем из таблицы. Если такого столбца в таблице данных нет, то нужно, либо добавить это поле в запрос (предпочтительный вариант), либо добавлять поле в непосредственно в ADOQuery в коде, после открытия датасета, назначать этому полю тип "Вычисляемое" (fkCalculated) и заполнять на событии OnCalcFields (воспользуйтесь поиском, примеров в букварях и на форумах более чем достаточно). Короче, задаёте конкретные вопросы, получаете конкретные ответы, иначе - ответы получаются обще-универсального плана. |
16.11.2012, 12:38 | #5 |
Пользователь
Регистрация: 07.12.2009
Сообщений: 46
|
Физически столбца в БД нет. В DBgrid я отображаю все поля из базы данных + мой дополнительный столбец (MyField), который необходимо заполнить значениями из определенного массива.
Если быть точнее, мне необходимо дополнительное поле для удобного представления информации. Столбец "Операция" содержит значения от 0 до 17 (пользователь не знает номера операций, их расшифровки, и это неудобно), мне необходимо показать пользователю название это операции из стандартного набора. Вот он: Код:
Последний раз редактировалось Stilet; 16.11.2012 в 15:52. |
16.11.2012, 14:02 | #6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Serge_Bliznykov уже написал - делайте в AdoQuery вычисляемое поле, присваивайте ему значение в OnCalcFields - больше ничего не нужно.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
16.11.2012, 14:29 | #7 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
о. а ещё лучше - добавить таблицу OperationName
в ней два поля LogId, LogOperation, дальше уже всё просто. в запросе через JOIN связываешь вашу таблицу с таблицей OperationName и, вуаля, задача решена быстро, качественно, эффективно и просто. если же добавление новой таблицы невозможно, тогда либо использовать вычисляемое поле... либо ещё можно заполнить поле ручками в Dataset'е после его открытия. для этого можно сделать примерно так: 1. добавить текстовое поле в SQL запрос. Код:
Код:
|
16.11.2012, 14:38 | #8 |
Пользователь
Регистрация: 07.12.2009
Сообщений: 46
|
Сделал в AdoQuery, заюзал OnCalcFields и voila! Как сложно и как просто все! Спасибо большое всем, кто принял участие в устранении моего тупизма! Всем поставил +1.
Последний раз редактировалось samouelson; 16.11.2012 в 15:33. |
16.11.2012, 15:40 | #9 |
Пользователь
Регистрация: 07.12.2009
Сообщений: 46
|
Каким образом можно отсортировать данную таблицу по полю MyField (fkCalculated), если его нет в бд? У меня вылетает Invalid column name на этот код:
Код:
Последний раз редактировалось samouelson; 16.11.2012 в 15:48. Причина: Ответ найден на форуме |
16.11.2012, 16:00 | #10 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
и правильно. так нельзя. если поля нет, то почём СУБД будет сортировать то?!
а вот если бы послушались моего совета и добавили ещё одну таблицу в БД, тогда можно было легко в запросе использовать! p.s. попробуйте через IndexName.... хотя не уверен, что поможет.. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как ComboBox на UserForm заполнить данными с другого листа ? | Snekich | Microsoft Office Excel | 2 | 08.12.2011 18:37 |
Добавить столбец с данными, из запроса в существующую таблицу. | Tolius | Microsoft Office Access | 0 | 04.05.2011 16:43 |
заполнить таблицу данными из доверенностей | LazyFox | Microsoft Office Excel | 5 | 10.10.2009 16:41 |
Рандомно заполнить столбец( | gred | БД в Delphi | 1 | 15.06.2009 10:00 |