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

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

Query [D6, Paradox]


Slaviq ©   (2002-08-16 15:52:00) 

Я пытаюсь в Query изменить данные, вроде как Query1.Insert
ReqestLive=true, в SQl написано select * from base order by Name
, а дельфин мне в ответ: read-only
убираю order by работает - это почему интересно????
Может есть выход, потому что мне надо еще и выборкой заниматься и группировкой, а ТТЭйбл не подходит!!
Всем ответившим огромная благодарность!


Sirus   (2002-08-18 08:13:00) [1]

Используй SQL и никаких DataControls и DataSource...
Обычными TEdit и т.д. Получается лучше... Да и один TQuery можно использовать для нескольких различных запросов...
А главное голова не болит от всех связей между TQuery и DataControls....
insert into TABLE1, update TABLE1 set FIELD1=X


Desdechado   (2002-08-17 19:20:00) [2]

Base not in insert or edit mode - перед изменением записи делай qry.Edit

а вообще ты что-то смешал все в кучу :)
изменения считанных данных проводит юзер в локальном кэше (для любого кол-ва записей), потом жмет "сохранить", после чего ApplyUpdates - перенос изменений в базу

пример
C:\PROGRAM FILES\BORLAND\DELPHI5\DEMOS\DB\CACHEDUP\


slaviq   (2002-08-16 23:09:00) [3]

Чегото не получается, пишет - Base not in insert or edit mode!
Я уже задолбался, целый день колупаться в этих хелпах,
главное обидно, что из по хелпу про кэш понял %5-6 :(((

Может кините готовый примерчик состоящий из:
Форма, ДБГрид-ДатаСэт-Квери2, Квери1
Квери1 (update base kol=kol+2)
Квери2 (select * from base order by Name)
Кнопка1 - Апдейтит СКЛ в Квери1
Кнопка2 - Делает выборку

Пршу нисчесть за нахальство, просто устал, ничего не понял,
и в обиде на самого себя и Дельфин!
Всем спасибо!!!


Desdechado   (2002-08-16 18:15:00) [4]

Query.UpdateObject = UpdateSQL
Query.CachedUpdates = True - это не для работы с большими БД, а для кэширования изменений нередактируемых датасетов (твой случай)

после изменений - Query.ApplyUpdates
и не забудь про транзакции почитать :)


slaviq   (2002-08-16 17:01:00) [5]

Я чего-то индексы хронически не люблю, темболее, я же не только сортировать собираюсь, а и групировать СКЛ запросами, а с индексами возни слишком много и код огромный.

Подскажите как использовать ТUpdateSQl, а то я никогда его не использовал, и в справке я не нашел исчерпывающей инфы


Val   (2002-08-16 16:40:00) [6]

1.Description
Use a TUpdateSQL object to provide SQL statements used to update read-only datasets represented by TQuery or TStoredProc components when cached updates are enabled.
2. а почему собственно не устраивает использование вторичного индекса и TTable?


slviq   (2002-08-16 16:32:00) [7]

1. И чего делать с UpdateSQL, я же ничего вроде не кэширую, и использовать кэш мне не зачем, базка малая сильно.
2. Может можно связать как-то Тейбл и Квєри Чтобы в при выборе в тейбл поля его изменять, а Квери сортировал и выбирал, то что должно находиться в Тейбл?, я тут пробовал - ничего не вышло :(


Val   (2002-08-16 16:17:00) [8]

возьми на вооружение TUpdateSQL


Leran2002   (2002-08-16 15:58:00) [9]

Все правильно, Дельфин зря не матерится...
Попробуй сделать вторичный индекс по полю Name, и снова выполнить запрос...


Lord Warlock   (2002-08-16 15:56:00) [10]

Редактироваь данные можно только в простых запросах. GroupBy OrderBy не подходят. Это написано в справке по ReqestLive


Наверх

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