|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
03.03.2014, 16:37 | #1 |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
Редактирование через DBGrid представления.
Доброго времени суток. Работаю с MS SQL Server 2008. Создал представление из 2 таблиц. Подключил его к ADOTable+DataSource. Добавил на форму DBGrid, настроил на DataSource.
Нажимаю на ячейку DBGrid, редактирую её, а остальные записи не меняют своего значения. Поясню. Допустим, у меня 10 строк с значением "Коля", в одной из строк я меняю его на "Сережа", и лишь в этой строке будет значение "Сережа", а остальные так и останутся "Коля". Код:
Зато если закрыть проект и открыть заново, то значение как в таблице БД, так и в представлении изменяется. Как же сделать это обновление не закрывая программы? Спасибо за внимание.
Если помог, проси поставить минус. Будь оригинален!
|
07.03.2014, 15:57 | #2 |
Новичок
Джуниор
Регистрация: 07.03.2014
Сообщений: 1
|
Проверь после редактирования в Гриде, что записывает в БД, не закрывая программы...Скорей всего после редактирования в Гриде не срабатывает POST
|
15.03.2014, 18:19 | #3 |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
Dim4ikhot, POST срабатывал, нужно было в ADOConnection1 запускать транзакцию. Вот. . Спасибо за ответ.
Дабы не создавать ещё одну тему, опишу ещё одну проблему с добавлением в View(представлением) SQL Server. Есть 2 таблицы: Главная: Сотрудники(id, ФИО, паспортные данные). Подчиненная: Специальность: (id, Специальность). Есть представление(View), собранное из 2 таблиц с полями (id, ФИО, прспортные данные, специальность). DBGrid подключен к View. Через DBGrid добавляю новую сторку, вызывая Append, и получаю ошибку "Невозможно вставить значение NULL id для таблицы Специальность. NULL запрещен". Есть ли возможность добавлять записи через DBGrid, не прибегая к SQL запросам?
Если помог, проси поставить минус. Будь оригинален!
|
15.03.2014, 18:35 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Здесь все просто - в представлении нет поля id из таблицы Специальность судя по ошибке.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
15.03.2014, 19:59 | #5 |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
В SQL Server добавил на выход id из таблицы "Специальность", получаю ту же ошибку. Я забыл сказать, что в DBGrid вывожу все столбцы, корме "Сотрудник.id" "Специальность.id", т.к. они явл. первичными ключами.
Если помог, проси поставить минус. Будь оригинален!
|
15.03.2014, 21:26 | #6 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
так а хоть запросом все равно будет ошибка, иду откуда взяться?
|
15.03.2014, 21:35 | #7 | |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
Цитата:
Теперь id берется отсюда. Добавил ещё 2 TColumn в редакторе DBGrid, и сделал их невидимыми. Код:
1) при INSERT выдает ошибку на внешний ключ, но добавляет в таблицу "Сотрудники" сотрудника. После этого нельзя перейти в скомпилированное приложение. 2) при INSERT выдает ошибку на первичный ключ, но добавляет в таблицу "Специальность" специальность. После этого нельзя перейти в скомпилированное приложение. Со 2-ой ошибкой все понятно. А что делать с первой, если не применять SQL-запроса, я не знаю.
Если помог, проси поставить минус. Будь оригинален!
Последний раз редактировалось Rin; 15.03.2014 в 21:41. |
|
15.03.2014, 21:47 | #8 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
никак, у вас там идентити выставлено, вот от сюда и плясать
да и ваще без запросов это не жизнь, а еще лучше хранимые процедуры |
15.03.2014, 21:58 | #9 |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
Обидно. Ведь идентити без SQL-запроса не выключить. Блин, хотелось меньше кода. Эх. Пойду писать запросы. Спасибо большое за ответы.
Если помог, проси поставить минус. Будь оригинален!
|
15.03.2014, 21:59 | #10 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
так зачем вы его выставили если он вам не надо? что то вы сами не знаете чего делаете
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Редактирование записи, указанной в DBGrid | Utkin | БД в Delphi | 9 | 25.01.2014 20:04 |
редактирование dbgrid | undead92 | БД в Delphi | 9 | 30.10.2013 11:03 |
Редактирование данных в DBGrid | II_Dimit_II | БД в Delphi | 2 | 28.05.2013 09:43 |
Редактирование поля в DBGrid. | Ol'K@ | БД в Delphi | 8 | 03.02.2013 15:18 |
Запретить редактирование в DBGrid | MixanMM | БД в Delphi | 12 | 10.05.2010 20:28 |