Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TIBQuery + DBMemo: редактирование записей 
V
    Опции темы
Данкинг
Дата 26.7.2009, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Лежат, значит, у меня на форме всякие DB-компоненты: DBMemo, DBDateEdit, DBEdit и т.п. Если подключать к ним AdoQuery, то через эти компоненты датасет запроса можно редактировать, и, соответственно, редакции сохраняются в таблице. А вот если подключить TIBQuery, то редактирование невозможно: эти компоненты делаются как будто read-only. Данные-то отображаются, но вот редактировать их не получается. В запросах просто выбраны все записи, т.е. select * from ....
Вопрос: ы? smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Bose
Дата 26.7.2009, 23:39 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 9
Всего: 51



Данкинг, IBQUery сам по себе позволяет только читать данные.
Если хочешь редактировать, добавь TIBUpdateSQL, но он имеет некоторые ограничения(например, в запросах нельзя использовать хранимые процедуры). Лучше юзай TIbDataset.
PM MAIL WWW Skype   Вверх
Данкинг
Дата 26.7.2009, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(Bose @  27.7.2009,  00:39 Найти цитируемый пост)
Если хочешь редактировать, добавь TIBUpdateSQL

Добавил... А как с ним работать-то? smile Куда там DbMemo привязывать?

Добавлено через 1 минуту и 5 секунд
Цитата(Bose @  27.7.2009,  00:39 Найти цитируемый пост)
Лучше юзай TIbDataset. 

Ну так а запросы как я в него впихну...

Это сообщение отредактировал(а) Данкинг - 26.7.2009, 23:45


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Bose
Дата 27.7.2009, 03:13 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 9
Всего: 51



Цитата(Данкинг @  26.7.2009,  22:44 Найти цитируемый пост)
Добавил... А как с ним работать-то? smile Куда там DbMemo привязывать?


Смотри свойства
UpdateSQL, DeleteSQL, InsertSQL и RefreshSQL. 

А также прочитай это - там есть ответы на все твои вопросы(даже ещё не заданные).   smile 
PM MAIL WWW Skype   Вверх
Данкинг
Дата 27.7.2009, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(Bose @  27.7.2009,  04:13 Найти цитируемый пост)
Смотри свойства

Ну так обычные стринглисты... smile А этот IBUpdateSQL даже привязать некуда ,т.е. свойства вроде "datasource" не имеется. 

Цитата(Bose @  27.7.2009,  04:13 Найти цитируемый пост)
А также прочитай это - там есть ответы на все твои вопросы(даже ещё не заданные).

ibase.ru не открывался как вчера, так и сегодня не открывается. Или это только у меня?

Цитата

Надо у компонента TIbQuery указать свойство UpdateObject равным IBUpdateSQL1 (имя компонента IBUpdateSQL).
При модификации IbQuery будет автоматически вызываться твои deleteSQL, insertSQL, updateSQL. 

 smile 

Но в любом случае DbMemo неактивным остаётся. В общем, проще кинуть обычные Memo и вручную апдейтить. smile 

Это сообщение отредактировал(а) Данкинг - 27.7.2009, 11:27


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
former
Дата 27.7.2009, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 7
Всего: 17



Цитата(Данкинг @  27.7.2009,  10:44 Найти цитируемый пост)
Ну так обычные стринглисты... smile А этот IBUpdateSQL даже привязать некуда ,т.е. свойства вроде "datasource" не имеется. 

Данкинг, используй IBDataSet. Заполни SelectSQL, UpdateSQL, DeleteSQL, InsertSQL и RefreshSQL.
По двойному клику появится список полей. В контекстном меню выбери Add all fields. Кидаешь на форму DataSource (привязываешь его к IBDataSet) и DBMemo (указываешь DataSource и FieldName). 

Это сообщение отредактировал(а) former - 27.7.2009, 12:45


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Данкинг
Дата 27.7.2009, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(former @  27.7.2009,  13:43 Найти цитируемый пост)
IBDataSet

Ну а пересортировывать, выбирать по условию? ИМХО, с Датасетом - извращение не меньшее, чем внесение изменений вручную, как я хотел. Я просто думал, как-то с IBQuery можно сиё проделать.

Впрочем, с IBDataSet редактрование тоже отключено, как и с IBQuery.

Это сообщение отредактировал(а) Данкинг - 27.7.2009, 15:20


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Akella
Дата 27.7.2009, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Смотря какой запрос
PM MAIL   Вверх
former
Дата 27.7.2009, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 7
Всего: 17



Цитата(Данкинг @  27.7.2009,  13:44 Найти цитируемый пост)
Ну а пересортировывать, выбирать по условию? ИМХО, с Датасетом - извращение не меньшее, чем внесение изменений вручную, как я хотел.

Используй фильтры в IBDataSet. А сортировку средствами таблицы организуй, например.
Цитата(Данкинг @  27.7.2009,  13:44 Найти цитируемый пост)
Впрочем, с IBDataSet редактрование тоже отключено, как и с IBQuery.

Чего, чего? Уже несколько раз написали, редактируй свойства SelectSQL, UpdateSQL, DeleteSQL, InsertSQL и RefreshSQL.


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Akella
Дата 27.7.2009, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Да на форуме уже есть темы про редактируемые/нередактируемые НД.
PM MAIL   Вверх
Данкинг
Дата 27.7.2009, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(former @  27.7.2009,  22:10 Найти цитируемый пост)
А сортировку средствами таблицы организуй, например.

Н-да. smile В общем, с UpdateSQL суть ясна, но для себя делаю вывод, что лучше использовать обычные Edit, Memo и т.п., в которые вручную загонять данные. smile Всем спасибо за участие. smile 






--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Bose
Дата 29.7.2009, 03:04 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 9
Всего: 51



сначала включи мозги, и только потом запускай Delphi и всё получится. Проблема-то тривиальная.  smile 

Цитата(Данкинг @  27.7.2009,  12:44 Найти цитируемый пост)
Ну а пересортировывать, выбирать по условию? ИМХО, с Датасетом - извращение не меньшее, чем внесение изменений вручную, как я хотел. Я просто думал, как-то с IBQuery можно сиё проделать.

Всё возможно. И с датасетом и с IBQuery + IBUpdateSQL. Смотри у IBQuery свойство UpdateObject (кажется). 
Свойства UpdateSQL, DeleteSQL, InsertSQL и RefreshSQL заполнять придётся в любом случае. Точнее, достаточно заполнить только те, которые нужны. 

PM MAIL WWW Skype   Вверх
Akella
Дата 29.7.2009, 08:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



На сколько я помню, то когда-то в справке вычитал, что при вызове IBQuery.Update или IBQuery.Edit срабатывает код у IBQuery.IBUpdateSQL.SQL
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0596 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.