Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2012, 20:11   #1
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
Вопрос Не редактируются записи в DBGridEh

Вечер добрый! В DBGridEh через pFIBDataSet вывожу записи из таблицы. Мне нужно, чтобы можно было любую ячейку редактировать, но, я не могу. Вроде все свойства блокировки установил в состояние разрешения редактирования. Если ставлю программно:
Код:
 Form1.pFIBDataSet4.Active:=False;
 Form1.pFIBDataSet4.SQLs.SelectSQL.Clear;
 Form1.pFIBDataSet4.SQLs.SelectSQL.Text:='SELECT * FROM D_' +   Form17.sLabel3.Caption;
 Form1.pFIBDataSet4.Active:=True;
 Form1.pFIBDataSet4.Edit;
то появляется бородатая ошибка:
"Form1.pFIBDataSet4: Cannot modify a read-only dataset". Смысл ошибки понятен, но непонятно где и что я забыл изменить, чтобы можно было любую ячейку редактировать. Есть мысли у кого?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 13.06.2012, 11:05   #2
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 149
По умолчанию

Вопрос идиотский, но все-таки спрошу: а ты UpdateSQL прописал?
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Старый 13.06.2012, 12:10   #3
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Нет, а что там надо прописать?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 13.06.2012, 13:23   #4
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 149
По умолчанию

pFIBDataSet4.SQLs.UpdateSQL.Text := 'update D_'+Form17.sLabel3.Caption+' set FIELD_1 = :FIELD_1, FIELD_2 = :FIELD_2 ... FIELD_n = :FIELD_n where ID = :OLD_ID'. Как-то так, точно не помню - с фибами работал весьма давно.

Более точный код за меня сделает сам FIBDataSet - там есть генерация запросов.
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Старый 13.06.2012, 17:39   #5
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Мне нужно без запроса редактировать. Это не подойдет.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 13.06.2012, 18:01   #6
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 149
По умолчанию

Это каким образом?
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Старый 13.06.2012, 18:11   #7
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Такая вот идеология программы. В ней можно смотреть любую таблицу БД, с любым типом полей, с любым количеством колонок. Нужно реализовать через DBGridEh редактирование. Тогда все, эта задача будет решена. Возможности огромные дает такая возможность.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 13.06.2012, 19:24   #8
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 149
По умолчанию

Так формируй запрос update на лету, в чем проблема?
Просто без запроса вообще не совсем понятно, каким образом будут меняться данные.
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Старый 13.06.2012, 19:32   #9
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

В смысле, что написать в параметры названия полей?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 14.06.2012, 04:05   #10
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

А что есть сложности получить имя поля по номеру колонки в которой находишься.
Ну а вообще я бы решил проблему иначе. Использовал бы table. Ибо все равно ваш
Код:
SELECT *
равносилен использованию table. Только головняков меньше. Но это опятьже зависит от времени которое хочется затратить на решение задачи.
Вопрос про апдейт тоже вполне может быть, но получить поле которое надо проапдейтить это еще пол дела. Нужно понять какую запись надо апдейтить. А мы не всегда знаем по какому полю можно одноздначно идентифицировать запись (исходя из
Цитата:
любую таблицу БД, с любым типом полей, с любым количеством колонок
).
Хотя если мы будем при открытии пытаться получить информацию о первичном ключе таблицы, то в принципе тогда проблема вполне решаема.
1. Получаем поля первичного ключа
2. Получаем новое значение поля
3. Получаем имя поля которое редактируем
4. Формируем запрос на изменение
5. Обновляем данные чтоб видеть изменения.
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DBGridEh тормозит при добавлении записи Jora_Kornev БД в Delphi 5 02.03.2012 09:17
при добавлении новой записи в dbgrideh автоматическое отмечивание галочкой scroyler БД в Delphi 2 23.02.2012 12:27
Не редактируются диалоговые окна -_- Alovar Visual C++ 0 29.11.2011 21:07
Пронумеровать записи в DBGridEh Sergey2 БД в Delphi 4 16.03.2010 20:03
не редактируются записи A_r_r_a_y БД в Delphi 0 28.10.2008 23:01