Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Редактирование в DBGrid

42K
21 октября 2008 года
yurla
4 / / 21.10.2008
Здравствуйте, знатаки Delphi7
Вопрос который мне не даёт ночью спать.
Не могу редактировать данные в гриде.

Есть простая таблица: base.dbf
Поля: Pole1 C(10), Pole2 C(10).

Успользую стандартные компоненты:
Query1 > DataSource1 > DBGrid1

Делаю простой запрос из таблицы: SELECT * FROM base.dbf
Отображается все содержимое таблицы. Теперь самое сложное, я хочу в получившейся выборке отредактировать значение некоторых полей.
Но грид не дает мне редактировать. Замечу что у грида параметр ReadOnly=False.
Прошу не предлогать использование компонента Table1, так как для меня очень важно работать с SQL запросами. Есть еще один вариант который вы можете предложить, это по двоиному клику по записи открыть новую форму, вывести на неё значение записи, отредактировать запись и через UPDATE сохранить в базе. Это вариант без спорно хорош, не подходит так как он не совсем удобен по тем причинам что замедляется процес редактирования записей пользователем.
Я думаю что можно какимто образом редактировать в гриде, скорее всего у меня не хватает мозгов :)

Заранее всем спасибо за ваши мысли, идеи и предложения.
6
21 октября 2008 года
George
4.1K / / 05.01.2007
ну а что мысли, Кэнту (автор книг по дельфи) например прекрасно объясняет, как можно редактировать БД из DBGrid. Зачем я буду копировать оттуда информацию - скачай и почитай. И заснешь той же ночью. :)
42K
21 октября 2008 года
yurla
4 / / 21.10.2008
Я бы не прибегал к этому вопросу, если б мог найти эту информацию.
Помогите, умираю от безсонницы
3.2K
21 октября 2008 года
Гудвин
186 / / 22.12.2007
ну тогда единственный выход - бутылка водки наночь натощак.
247
22 октября 2008 года
wanja
1.2K / / 03.02.2003
Попробуй не запросом, а Table.
30K
22 октября 2008 года
vinni-medved
19 / / 29.02.2008
как вариант - можно попробовать данные выводить в TStrinGdrid. И в нем уже редактировать и записывать обратно.
43K
23 октября 2008 года
Mari_tv
1 / / 23.10.2008
Может проблема не в DBGrid, а в Query?
Компонент Query с запросом Select
формирует таблицу только для чтения. Это можно исправить, если установить в компоненте Query свойство RequestLive в true. Это позволяет возвращать как результат запроса изменяемый, живой набор данных, вместо таблицы только для чтения. Точнее, установка RequestLive в true делает попытку вернуть живой набор данных. Успешной эта попытка будет только при соблюдении ряда условий, в частности:
• набор данных формируется обращением только к одной таблице
• набор данных не упорядочен (в запросе не используется ORDER BY)
• в наборе данных не используются совокупные характеристики типа Sum, Count
и др.
• набор данных не кэшируется (свойство Cashed Updates рввно false).
Из книги А.Я. Архангельский «Программирование в Delphi 7»
42K
23 октября 2008 года
yurla
4 / / 21.10.2008
ОТВЕТ НАЙДЕН
Ответ находится в исходнике поставляемом с делфи в демках.
У кого установлен делфи7, исходник лежит тут.

C:\Program Files\Borland\Delphi7\Demos\Db\IBX\CachedUp\

Там просто надо было использовать дополнительные компоненты UPDate
Исходник мне дал больше чем я ожидал получить.

ВСЕМ ГУРУ СПАСИБО!!!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог