Сейчас на форуме: (+5 невидимых) |
![]() |
eXeL@B —› Программирование —› Table-DataSource-Query - кто третий лишний? |
Посл.ответ | Сообщение |
|
Создано: 05 октября 2007 12:55 · Личное сообщение · #1 Приветствую всех участников топика. Вопрос следующий можно ли мне как-нибудь оформить подключение к таблице так чтобы TTable редактировал данные, а Query запросы на сортировку и фильтры? Тоесть у меня есть :Table,DataSource,DBGrid,Query. Или просто объясните почему Query не хочет выполнять операции типа Insert,Delete,говоря что типа read-only хотя я подключаю ему одну единственную таблицу или как его заставить думать что она едиственна??? Помогите плиз! ![]() |
|
Создано: 05 октября 2007 13:18 · Личное сообщение · #2 |
|
Создано: 05 октября 2007 13:20 · Личное сообщение · #3 |
|
Создано: 05 октября 2007 14:13 · Личное сообщение · #4 |
|
Создано: 05 октября 2007 14:14 · Личное сообщение · #5 |
|
Создано: 05 октября 2007 14:28 · Личное сообщение · #6 NicknamES пишет: TTable редактировал данные, а Query запросы на сортировку и фильтры? Вообще сортировку и фильтры можно делать и на уровне TTable. Для сортировки предварительно создай несколько индексов по нужным полям и потом устанавливай нужный индекс в самой TTable. Для фильтра опять же подойдут индексы с использованием SetRange либо Filter/OnFilterRecord+Filtered=True ![]() |
|
Создано: 05 октября 2007 14:29 · Поправил: pushick · Личное сообщение · #7 |
|
Создано: 05 октября 2007 14:45 · Поправил: intro · Личное сообщение · #8 Если способность TTable редактировать и удалять записи ни у кого не вызывает удивления, то TQuery требует, чтобы свойство RequestLive было установлено в True. Если при False запрос отправлялся непосредственно на сервер, то при True запрос предварительно обрабатывается локальным SQL (модуль IDSQL32.DLL). Это необходимо для того, чтобы TQuery смог сформировать запросы INSERT/UPDATE/DELETE на основании заданного SELECT. Для TTable построение таких запросов не представляет сложности, т.к. задано только имя таблицы, имена полей считаны и т.п. А существующий SQL-запрос нужно синтаксически разобрать, чтобы понять, сколько в нем используется таблиц, какие выбираются поля и из каких таблиц, и можно ли вообще сформировать запросы на вставку, обновление и удаление данных. При переключении TQuery.RequestLive:=True; TQuery начинает вести себя как TTable - т.е. он сначала разбирает запрос, извлекает оттуда имя таблицы, и потом выбирает информацию из системных таблиц о полях таблицы, индексах и т.п. Вы можете все это увидеть в SQL Monitor. Кроме RequestLive можно еще воспользоваться и компонентом UpdateSQL. взято из Delphi World 6 ![]() |
|
Создано: 05 октября 2007 15:11 · Личное сообщение · #9 |
|
Создано: 05 октября 2007 16:54 · Личное сообщение · #10 |
|
Создано: 07 октября 2007 14:36 · Личное сообщение · #11 |
|
Создано: 08 октября 2007 08:32 · Личное сообщение · #12 |
|
Создано: 09 октября 2007 00:10 · Личное сообщение · #13 |
|
Создано: 09 октября 2007 14:00 · Личное сообщение · #14 |
![]() |
eXeL@B —› Программирование —› Table-DataSource-Query - кто третий лишний? |
Эта тема закрыта. Ответы больше не принимаются. |