Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ORDER BY (Query1.Edit) Cannot modify a read-only dataset [D7, Paradox]


azl ©   (2007-12-09 15:51:00) 

Зравствуйте!
Помогите решить проблему. Облазил весь Интернет, но толкового ответа так и не нашел. Когда добавляю в SQL-запрос ORDER BY, то при Query1.Edit выскакивает сообщение Cannot modify a read-only dataset. При этом RequestLive := True; Если убираю ORDER BY, все нормально работает.
Что нужно сделать, чтобы можно было редактировать запись и не было этого сообщения?

Заранее спасибо.


azl   (2007-12-09 17:51:00) [1]


> Johnmen ©   (09.12.07 17:47) [14]


> В чем сложность прописать все нужные поля?

Сложности нет. Т.е., если у меня 30 полей, я каждое из них должен прописать?


Johnmen   (2007-12-09 17:49:00) [2]


> > Но 100 полей говорит о кривом проектировании, например.
> Ой ли? Ну есть у нас сущность в 100 полей, и что?

То, что криво спроектировано.


azl   (2007-12-09 17:47:00) [3]


> Johnmen ©   (09.12.07 16:33) [5]


> И врать не надо, здесь этого не любят.

Вот везде такие темы и встречаются, где все отвечают заумными и совершенно не конкретными фразами. Нафлудят по 100 сообщений, а четких ответов, тем более, с примерами, хрен найдешь.


> Anatoly Podgoretsky ©   (09.12.07 17:42) [13]

Ну Ваша манера отвечать на вопросы всем известна, поэтому я не удивляюсь. Практически никогда не говорите по делу, а только так как в этой теме. Вам общения не хватает?


Johnmen   (2007-12-09 17:47:00) [4]


> azl ©   (09.12.07 17:32) [11]
> Ага, и как я угадаю, какое поле захочет
> изменить пользователь?

Причем тут гадание?
Ты программу пишешь? Ты предметную область знаешь?
Ну вот и исходи из неё.
В чем сложность прописать все нужные поля?


Anatoly Podgoretsky   (2007-12-09 17:42:00) [5]

> azl  (09.12.2007 17:32:11)  [11]

Сдается мне, что это ты издеваешься над нами.


b z   (2007-12-09 17:37:00) [6]


> Но 100 полей говорит о кривом проектировании, например.

Ой ли? Ну есть у нас сущность в 100 полей, и что? Разбить на 2/3/4/5... чтоб удовлетворить неким условиям?


azl   (2007-12-09 17:32:00) [7]


> Johnmen ©   (09.12.07 17:22) [9]


> Все, значения которых могут быть изменены.

Ага, и как я угадаю, какое поле захочет изменить пользователь?

> Но 100 полей говорит о кривом проектировании, например.

Я пример привел. У меня 32 поля.


> Anatoly Podgoretsky ©   (09.12.07 17:22) [10]

Я понимаю, что вы серьезный программист, но ваши ответы не несут совершенно никакой смысловой нагрузки. Или Вам интересно поиздеваться над людьми?


Johnmen   (2007-12-09 17:22:00) [8]


> azl ©   (09.12.07 17:07) [6]
> Это если у меня, например, 100 полей, я должен кадое прописывать
> в ModifySQL?

Все, значения которых могут быть изменены.
Но 100 полей говорит о кривом проектировании, например.


Anatoly Podgoretsky   (2007-12-09 17:22:00) [9]

> azl  (09.12.2007 17:19:08)  [8]

Будешь вопросами отмалчиваться.


azl   (2007-12-09 17:19:00) [10]


> Anatoly Podgoretsky ©   (09.12.07 17:15) [7]

В смысле?


Anatoly Podgoretsky   (2007-12-09 17:15:00) [11]

У тебя компоненты используются?


azl   (2007-12-09 17:07:00) [12]


> Johnmen ©   (09.12.07 16:33) [5]

Я не вру. Может просто не то ищу, что надо. Если бы я нашел, вопросы бы не задавал здесь.

> Это значит, что надо читать справку.
> RequestLive+F1 - See also - Updating a read-only result
> set

Почитал, спасибо. Я понял, что нужно использовать UpdateSQL. Только не совсем понятно, что нужно писать в DeleteSQL, InsertSQL, ModifySQL.

Set ModifySQL to the SQL UPDATE statement to use when applying an updated record to a dataset. Statements can be parameterized queries. To create a UPDATE statement at design time, use the UpdateSQL editor to create statements, such as:
UPDATE "Country.db"
SET Name = :Name, Capital = :Capital, Continent = :Continent
WHERE Name = :OLD_Name

At run time, an application can write a statement directly to this property to set or change the UPDATE statement.
Note:
As the example illustrates, ModifySQL supports an extension to normal parameter binding. To retrieve the value of a field as it exists prior to application of cached updates, the field name with 'OLD_'. This is especially useful when doing field comparisons in the WHERE clause of the statement.

Это если у меня, например, 100 полей, я должен кадое прописывать в ModifySQL?


Johnmen   (2007-12-09 16:33:00) [13]


> Это значит, что ничего нельзя сделать?

Это значит, что надо читать справку.
RequestLive+F1 - See also - Updating a read-only result set

> Облазил весь Интернет, но толкового ответа так и не нашел.

И врать не надо, здесь этого не любят.


Anatoly Podgoretsky   (2007-12-09 16:22:00) [14]

> azl  (09.12.2007 16:08:02)  [2]

Я тоже могу задавать вопросы, мне можно, а вот тебе отвечать положено.


Reindeer Moss Eater   (2007-12-09 16:18:00) [15]

Нужен индекс по всему ордербаю. Но может и не помочь.


azl   (2007-12-09 16:08:00) [16]


> Anatoly Podgoretsky ©   (09.12.07 15:58) [1]

Это значит, что ничего нельзя сделать?


Anatoly Podgoretsky   (2007-12-09 15:58:00) [17]

> azl  (09.12.2007 15:51:00)  [0]

Парадокс


Наверх

Титульная страница Поиск, карта сайта Написать письмо