TClientDataset + SQL ?
От: Аноним  
Дата: 09.12.04 13:57
Оценка:
Можно ли с помощью TClientDataset выполнять SQL запросы к таблице в памяти? Таблицу предполагается создать на лету и загружать в нее текстовый файл c ";" в качестве разделителей. Запросы в основом будут либо сортировка либо фильтрация по нескольким полям. Есть ли какие нибудь похожие альтернативные варианты?
Re: TClientDataset + SQL ?
От: AlexandrV  
Дата: 09.12.04 14:01
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Можно ли с помощью TClientDataset выполнять SQL запросы к таблице в памяти? Таблицу предполагается создать на лету и загружать в нее текстовый файл c ";" в качестве разделителей. Запросы в основом будут либо сортировка либо фильтрация по нескольким полям. Есть ли какие нибудь похожие альтернативные варианты?


Сортировка и фильтрация конечно возможна. Сам делал и не раз.
Фильтрация делается совсем просто — есть свойства у КлиентДатаСета Filter и Filtered.
а для сортировки можно использовать возможность создания индекса на лету. посмотрите по поводу свойства у КлиентДатаСета, если я не ошибаюсь, то IndexDefs, к сожалению сам, уточнить не могу — нет с собой исходников.
Re[2]: TClientDataset + SQL ?
От: segeyros  
Дата: 09.12.04 14:43
Оценка:
Здравствуйте, AlexandrV, Вы писали:

AV>Здравствуйте, Аноним, Вы писали:


А>>Можно ли с помощью TClientDataset выполнять SQL запросы к таблице в памяти? Таблицу предполагается создать на лету и загружать в нее текстовый файл c ";" в качестве разделителей. Запросы в основом будут либо сортировка либо фильтрация по нескольким полям. Есть ли какие нибудь похожие альтернативные варианты?


AV>Сортировка и фильтрация конечно возможна. Сам делал и не раз.

AV>Фильтрация делается совсем просто — есть свойства у КлиентДатаСета Filter и Filtered.
AV>а для сортировки можно использовать возможность создания индекса на лету. посмотрите по поводу свойства у КлиентДатаСета, если я не ошибаюсь, то IndexDefs, к сожалению сам, уточнить не могу — нет с собой исходников.

Да, сортировка и фильтрация возможна. А SQL-запросы нельзя.
TClientDataset по функциональности как TTable. А основное его предназначение — для middleware, хотя и на клиенте в качестве обычной MemoryTable тоже удобно использовать. Очень удобная вещь, на мой взгляд, для программ, в которых БД — не основа, а что-то вспомогательное.
Re[3]: TClientDataset + SQL ?
От: AlexandrV  
Дата: 09.12.04 14:45
Оценка:
Здравствуйте, segeyros, Вы писали:

S>Здравствуйте, AlexandrV, Вы писали:


AV>>Здравствуйте, Аноним, Вы писали:


А>>>Можно ли с помощью TClientDataset выполнять SQL запросы к таблице в памяти? Таблицу предполагается создать на лету и загружать в нее текстовый файл c ";" в качестве разделителей. Запросы в основом будут либо сортировка либо фильтрация по нескольким полям. Есть ли какие нибудь похожие альтернативные варианты?


AV>>Сортировка и фильтрация конечно возможна. Сам делал и не раз.

AV>>Фильтрация делается совсем просто — есть свойства у КлиентДатаСета Filter и Filtered.
AV>>а для сортировки можно использовать возможность создания индекса на лету. посмотрите по поводу свойства у КлиентДатаСета, если я не ошибаюсь, то IndexDefs, к сожалению сам, уточнить не могу — нет с собой исходников.

S>Да, сортировка и фильтрация возможна. А SQL-запросы нельзя.

S>TClientDataset по функциональности как TTable. А основное его предназначение — для middleware, хотя и на клиенте в качестве обычной MemoryTable тоже удобно использовать. Очень удобная вещь, на мой взгляд, для программ, в которых БД — не основа, а что-то вспомогательное.


ну, я, собственно это и подчеркнул, что если сортировка и фильтр, то ...
Re[4]: TClientDataset + SQL ?
От: segeyros  
Дата: 09.12.04 14:49
Оценка:
Здравствуйте, AlexandrV, Вы писали:

AV>Здравствуйте, segeyros, Вы писали:


S>>Здравствуйте, AlexandrV, Вы писали:


AV>>>Здравствуйте, Аноним, Вы писали:


А>>>>Можно ли с помощью TClientDataset выполнять SQL запросы к таблице в памяти? Таблицу предполагается создать на лету и загружать в нее текстовый файл c ";" в качестве разделителей. Запросы в основом будут либо сортировка либо фильтрация по нескольким полям. Есть ли какие нибудь похожие альтернативные варианты?


AV>>>Сортировка и фильтрация конечно возможна. Сам делал и не раз.

AV>>>Фильтрация делается совсем просто — есть свойства у КлиентДатаСета Filter и Filtered.
AV>>>а для сортировки можно использовать возможность создания индекса на лету. посмотрите по поводу свойства у КлиентДатаСета, если я не ошибаюсь, то IndexDefs, к сожалению сам, уточнить не могу — нет с собой исходников.

S>>Да, сортировка и фильтрация возможна. А SQL-запросы нельзя.

S>>TClientDataset по функциональности как TTable. А основное его предназначение — для middleware, хотя и на клиенте в качестве обычной MemoryTable тоже удобно использовать. Очень удобная вещь, на мой взгляд, для программ, в которых БД — не основа, а что-то вспомогательное.


AV>ну, я, собственно это и подчеркнул, что если сортировка и фильтр, то ...


Ну да, это я скорее Анониму отвечал, чем вам.
Re[5]: TClientDataset + SQL ?
От: Валik Украина  
Дата: 09.12.04 16:39
Оценка:
S>Ну да, это я скорее Анониму отвечал, чем вам.

Всем спасибо! Я нашел один неплохой вариант и убедился что он работает.
http://www.aidaim.com/products/sqlmemtable/sqlmemtable_spec.php#SQL
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.