| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > TIBQuery + DBMemo: редактирование записей |
| Автор: Данкинг 26.7.2009, 22:24 |
| Лежат, значит, у меня на форме всякие DB-компоненты: DBMemo, DBDateEdit, DBEdit и т.п. Если подключать к ним AdoQuery, то через эти компоненты датасет запроса можно редактировать, и, соответственно, редакции сохраняются в таблице. А вот если подключить TIBQuery, то редактирование невозможно: эти компоненты делаются как будто read-only. Данные-то отображаются, но вот редактировать их не получается. В запросах просто выбраны все записи, т.е. select * from .... Вопрос: ы? |
| Автор: Bose 26.7.2009, 23:39 |
| Данкинг, IBQUery сам по себе позволяет только читать данные. Если хочешь редактировать, добавь TIBUpdateSQL, но он имеет некоторые ограничения(например, в запросах нельзя использовать хранимые процедуры). Лучше юзай TIbDataset. |
| Автор: Данкинг 26.7.2009, 23:44 |
Добавил... А как с ним работать-то? Добавлено через 1 минуту и 5 секунд Ну так а запросы как я в него впихну... |
| Автор: Данкинг 27.7.2009, 10:44 | ||||
Ну так обычные стринглисты...
ibase.ru не открывался как вчера, так и сегодня не открывается. Или это только у меня?
Но в любом случае DbMemo неактивным остаётся. В общем, проще кинуть обычные Memo и вручную апдейтить. |
| Автор: former 27.7.2009, 12:43 | ||
Данкинг, используй IBDataSet. Заполни SelectSQL, UpdateSQL, DeleteSQL, InsertSQL и RefreshSQL. По двойному клику появится список полей. В контекстном меню выбери Add all fields. Кидаешь на форму DataSource (привязываешь его к IBDataSet) и DBMemo (указываешь DataSource и FieldName). |
| Автор: Данкинг 27.7.2009, 13:44 |
Ну а пересортировывать, выбирать по условию? ИМХО, с Датасетом - извращение не меньшее, чем внесение изменений вручную, как я хотел. Я просто думал, как-то с IBQuery можно сиё проделать. Впрочем, с IBDataSet редактрование тоже отключено, как и с IBQuery. |
| Автор: Akella 27.7.2009, 18:23 |
| Смотря какой запрос |
| Автор: former 27.7.2009, 21:10 | ||||
Используй фильтры в IBDataSet. А сортировку средствами таблицы организуй, например.
Чего, чего? Уже несколько раз написали, редактируй свойства SelectSQL, UpdateSQL, DeleteSQL, InsertSQL и RefreshSQL. |
| Автор: Akella 27.7.2009, 21:17 |
| Да на форуме уже есть темы про редактируемые/нередактируемые НД. |
| Автор: Данкинг 27.7.2009, 21:24 |
Н-да. |
| Автор: Bose 29.7.2009, 03:04 | ||
сначала включи мозги, и только потом запускай Delphi и всё получится. Проблема-то тривиальная.
Всё возможно. И с датасетом и с IBQuery + IBUpdateSQL. Смотри у IBQuery свойство UpdateObject (кажется). Свойства UpdateSQL, DeleteSQL, InsertSQL и RefreshSQL заполнять придётся в любом случае. Точнее, достаточно заполнить только те, которые нужны. |
| Автор: Akella 29.7.2009, 08:05 |
| На сколько я помню, то когда-то в справке вычитал, что при вызове IBQuery.Update или IBQuery.Edit срабатывает код у IBQuery.IBUpdateSQL.SQL |