![]() |
|
|
![]()
|
|
| Annihilator |
|
|||
![]() bytegrinder ![]() ![]() Профиль Группа: Участник Сообщений: 493 Регистрация: 21.11.2006 Где: Омск Репутация: нет Всего: 3 |
Товарищи, скажите как добавлять запись в dbgrid состоящую допустим из 10 колонок!
-------------------- Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо |
|||
|
||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 1 Всего: 122 |
Вариант 1: Подключаешь его через TTable и тогда можно добавлять данные прямо в него с сохранением.
Вариант 2: Подключаешь через TQuery, но вторым TQuery при помощи запроса на добавление добавляешь данные и обновляешь DBGrid |
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
А если подключить через DataSet и DataSource? Будет работать как через TTable? (Т.е. получится ли добавлять записи прямо в таблице)?
-------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 1 Всего: 122 |
||||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
Ну кроме Query есть и DataSet. Query возвращает всегда одну запись, а DataSet - набор. По крайней мере так в компонентах, работающих с FireBird (пишу на Билдере). У меня DBGrid заполняется через связку DBGrid->DataSource->DataSet->Database.
Как вы заполняли грид через кверю, я если често не догоняю -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| Rodman |
|
||||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 1 Всего: 122 |
ну такого компонента не встречал, только свойство... ты что то путаешь, он возвращает набор записей удовлетворяющих условию. смари... в Query пишешь запрос
а если уже добавить
|
||||
|
|||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
Rodman, а вы на чём пишете? Я на BCB 6. Там на вкладке компонентов DataAccess второй значок ClientDataSet.
Но я вообще пользуюсь компонентами FIBPlus, т.к. база на FireBird. Там есть и Query и DataSet. Добавлено через 5 минут и 20 секунд Мне просто хотелось бы чтобы в гриде, когда на нижней строке нажимаешь кнопку вниз, появлялась новая строка для новой записи, которую надо добавить. Чтобы так сделать, надо свойству DataSet из DataSource что назначить? Только Table покатит? У меня сейчас pFIBDataSet, но я думаю что это аналог BDE-шного TTable -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 1 Всего: 122 |
никогда не юзал... не буду ничего за него говорить.. щас поглядел - сразу тоже не смогу сказать что оно такое. я и на билдере 6 и на делфи 7-2007... с базами всегда юзал или Table или Query (любые разновидности) |
|||
|
||||
| silversmith |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 18.12.2007 Где: Донецк, Украина Репутация: нет Всего: нет |
Вызови метод Append того источника данных, с которым ассоциирован грид. К примеру так: DBGrid1->DataSource->DataSet->Append(); |
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
Ок, попробую
-------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| Annihilator |
|
||||||
![]() bytegrinder ![]() ![]() Профиль Группа: Участник Сообщений: 493 Регистрация: 21.11.2006 Где: Омск Репутация: нет Всего: 3 |
Я в этом деле новичок, поэтому объясните, пожалуйста, как это сделать
Что означает "Подключить через..." и можно хотя бы код для наглядности
'DataBase' is not member of 'TDataSet'
Тут вообще Access Violation вылетает И возможно ли считать значения из текстового файла ну или просто из переменной или нужно подключение к БД. -------------------- Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо |
||||||
|
|||||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
Да это было показано не обращение к членам классов, а просто цепочка компонентов. Т.е. у DBGrid1 св-во DataSource, ему назнчаем компонент DataSource. у него есть св-во DataSet. Ему я назначаю значение pFIBDataSet, потому что у меня есть такой компонент ( а у него есть свойство Database). Ну а у вас будет кто-то другой, типа TTable или TQuery -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 1 Всего: 122 |
Annihilator, какая СУБД?
|
|||
|
||||
| silversmith |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 18.12.2007 Где: Донецк, Украина Репутация: нет Всего: нет |
Да, кстати, Annihilator, - как конкретно устанавливается связь с СУБД или какой там источник данных?
Просто вот этот код я неоднократно использовал и уверен в нем на 100%. Вкратце - в DBGride у тебя появится новая строка, когда в ассоциированном с ним источнике данных появится новая запись Все потомки класса TDataSet (в том числе и TClientDataSet, TTable, TQuery, TADOTable, TIBTable и т.п.) содержат унаследованный от него методы Append, который и добавляет запись в конец источника данных. Кстати Access Violation удалось получить на этой строчке только одним способом - очистив в DBGride свойство DataSet. Естественно - объекта нет и при вызове метода Access Violation ))) У тебя часом свойство DataSet не пустое? |
|||
|
||||
| Annihilator |
|
|||
![]() bytegrinder ![]() ![]() Профиль Группа: Участник Сообщений: 493 Регистрация: 21.11.2006 Где: Омск Репутация: нет Всего: 3 |
Данные беру из текстового файла, потом хочу засунуть их в access, но судя по всему, как я понял, DBGrid нужно предварительно связать с Access, а потом кидать туда данные из файла??? Access Violation наверное потому что ни с одной БД не связал DBGrid??? -------------------- Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо |
|||
|
||||
![]()
|
| Правила форума "C++: Базы данных" | |
|
|
Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах. Благодарим за понимание. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Базы данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |