![]() |
|
![]() ![]() ![]() |
|
Vavik |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 19.4.2007 Где: РнД Репутация: нет Всего: нет |
Вывожу данные в DBgrid через ADOQuery. Жму кнопку "редактировать" выделеная ячейка DBGridа пеерходит в режим редактирования, но ничего не редактируется. Почему ? Readonly:=false, RequestLive не предлагать, у ADOQuery его нет, свойство Active=True.
Нашёл маленький проект, в нём через ADOQuery подключена база Access, всё редактируется. Подключился к своей бд postgresqlя и всё, нифига не работает. Я конечно могу вбивать данные через Editыi, но это изврат, куда мне их 24 штуки пихать ? Через DBgrid удобней, а он не работает:( Это сообщение отредактировал(а) Vavik - 6.5.2009, 08:47 |
|||
|
||||
Rodman |
|
|||
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 22 Всего: 122 |
||||
|
||||
insoft |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 14.2.2007 Где: Тюменская область , г.Тобольск Репутация: 3 Всего: 3 |
Vavik, используй ADODataSet и воспользуйся поиском ishimsity уже задавал такой вопрос и получил на него ответ
|
|||
|
||||
Vavik |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 19.4.2007 Где: РнД Репутация: нет Всего: нет |
Ну вот этот проект, ток Бд на диск D кинуть надо.
Попробую... Присоединённый файл ( Кол-во скачиваний: 12 ) ![]() |
|||
|
||||
insoft |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 14.2.2007 Где: Тюменская область , г.Тобольск Репутация: 3 Всего: 3 |
||||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
Vavik, видишь ли, есть понятие "нередактируемый запрос".
|
|||
|
||||
Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 6 Всего: 15 |
а можно подробнее об этом?! я раньше всегда думал, что в редактируемом запросе должно присутствовать какое-то уникальное поле (MySQL, Oracle)... и мне действительно не понятна проблема Vavik... еще по прошлой его теме я заинтересовался и пошарил в нете... и ничего не смог найти... возникло чувство (наверняка ошибочное), что в postgresql на самом деле нельзя юзать автоматически редактируемые НД... но больше всего меня удивило, что, например, TADODataSet может редактировать набор из Oracle, полученный запросом select * from table, а TOracleDataSet - не может (ему необходим запрос select t.*, t.rowid from table t)... причем 1-й запрос вроде как "нередактируемый" получается... Akella и др. форумчане, прокомментируйте, плиз, эту ситуевину... также не откажусь, если вы ткнете меня носом в ссылки, где о данном вопросе можно почерпнуть какую-либо инфу... ![]() Это сообщение отредактировал(а) Kbl4AH - 6.5.2009, 13:27 |
|||
|
||||
Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 6 Всего: 15 |
Vavik, у тебя запрос типа select * from table?
Кажется, нашел решение... Попробуй использовать запрос типа select oid, * from table...
ЗЫ. Akella и др. форумчане, мой вопрос актуален... Это сообщение отредактировал(а) Kbl4AH - 6.5.2009, 13:21 |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
||||
|
||||
Vavik |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 19.4.2007 Где: РнД Репутация: нет Всего: нет |
Не, так тож не хочет. Мне тут на другом форуме подсказали, что такое возможно когда ключевые поля незаданы. Хотя кажется не в этом дело...подключился к БД Accessa, с одной таблицей без ключевых полей, всё норм редактирует. Это сообщение отредактировал(а) Vavik - 6.5.2009, 14:07 |
||||
|
|||||
Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
так это как раз и есть редактируемый запрос. Добавлено через 9 минут и 17 секунд Kbl4AH, по идее, если в запросе участвуют несколько таблиц, то такой запрос будет нередактируемый. Ну да, и ключевое поле должно быть, иначе откуда знать компонентам, какую именно запись редактировать. Если не будет ключевого поля, то есть опасность отредактировать больше одной записи. Представим, что у нас есть запрос:
(ни name, ни phones не являются первичными ключами) В гриде будет видно 2 поля. Теперь представим, что мы редактируем первую запись, где есть значения: Вася Пупки | 777-0-777 SQL Update такого запроса будет такой:
в этом случае может отредактировать не только текущая запись, а ещё несколько других, попавших под условие where ну может пример немного глуповат, но, надеюсь, что он, как бы, разъясняет ситуацию с отсутствием ключевого поля |
||||
|
|||||
Kbl4AH |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 6 Всего: 15 |
так про редактирование объединных таблиц у меня нет вопросов... у меня вопрос: почему АДОдатасет редактирует (и почему он редактирует, если не выбрано rowid) оракловый запрос select * from table, а ОРАКЛдатасет - нет... запрос-то ведь одинаковый... хотя... наверное, в ОраклДатаСете просто грамотно реализовали, чтоб явно разграничить редактиреумые и нередактируемые запросы...
так в цитате же именно это и написано! должен, т.к. OID и есть уникальное поле для этой БД... смотри уже свойства датасета, наверное, где-то запрет редактирования...
это понятно... тем более, что Oracle, PostgreSQL (псведополе) и MySQL (уникальный автоинкремент) их предоставляют по умолчанию... |
||||||
|
|||||||
Vavik |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 19.4.2007 Где: РнД Репутация: нет Всего: нет |
Слава яйцам, разобрался.
Делал так: Нажал 2 раза на ADOQuery, появилось окошко Fields editor, потом кликаем на нём правой кнопкой и выбираем add all Fields, ну а там выбираем поле и в свойстве Readonly ставим false ![]() Это сообщение отредактировал(а) Vavik - 6.5.2009, 16:45 |
|||
|
||||
Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 6 Всего: 15 |
||||
|
||||
Vavik |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 19.4.2007 Где: РнД Репутация: нет Всего: нет |
||||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |