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

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

Использование CommandText в ClientDataSet [D6]


Xjedy ©   (2003-02-13 12:07:00) 

Вопросик такой, делаю локальную базу с использованием ClientDataSet, данные хранятся в XML. Теперь, допустим мне надо отобрать часть этих данных, ну и вполне логично использовать для этого CommandText. Только вот это свойство ClientDataSet"ом полностью игнорируется. Т.е я могу там написать что угодно, хоть "добрый день". Причина в том, что база локальная? Можно конечно скажем перебирать все записи, и проверять значения, но SQL-запрос гораздо более логичен. Посоветуйте что-нибудь пожалуйста.


Xjedy   (2003-02-13 14:10:00) [1]

Спасибо.


Romkin   (2003-02-13 14:08:00) [2]

В принципе, MSSQL работает с XML...
Разумеется, можно просто сделать трехзвенку с сохранением результатов в xml - работа будет идти с сервером БД, а xml при желании и сервер приложений выдавать может
Но если у тебя один пользователь - заморачиватся действительно не стоит, ручками тоже довольно быстро.


Xjedy   (2003-02-13 13:53:00) [3]

2Соловьев:
Ну я к примеру написал, не надо так уж буквально :)
2Romkin:
Ну да, теперь все стало более ле менее ясно...
Т.е мне в связке
XML -> TClientDataSet, TClientDataSet нужно поменять на нечто, работающее с XML и поддерживающее SQL, так? А такие варианты существуют, или не стоит заморачиваться, а все делать ручками?


Romkin   (2003-02-13 13:39:00) [4]

И не будет. Кто тебе сказал, что TClientDataSet поддерживает SQL?


Соловьев   (2003-02-13 13:38:00) [5]

TClientDataSet(CommandText="lalala") :)))))))))
А так :
TClientDataSet(CommandText="select * from table where field="alala")


Xjedy   (2003-02-13 13:27:00) [6]

Хмм...
Из датасетов с XML работает TClientDataSet. Тогда получается:
XML -> TClientDataSet -> TDataSetProvider([poAllowCommandText]) -> TClientDataSet(CommandText="lalala") -> TDataSoutce
Но все равно не работает :(((


Romkin   (2003-02-13 12:58:00) [7]

в CommandText пишется запрос, передаваемый провайдеру. Насколько я понимаю, в вашем случае TClientDataSet используется просто как таблица в памяти, с возможностью сохранения в файле.
В этом случае, естественно, никакого SQL - все ручками, работая с датасетами.


Соловьев   (2003-02-13 12:43:00) [8]

Если на одной машине, Connection(DCOM?) не нужен,
а вот какой DataSet работает с XML я не знаю.
схема такая:
XML -> DataSet(какой?) -> Провайдер -> ClientDataSet -> DataSource


Xjedy   (2003-02-13 12:40:00) [9]

Я без провайдера работаю. Уточняю - использую TClientDataSet, в свойстве FileName указывается конкретный .XML файл. А Вы, если я правильно вас понял, предлагаете следующую архитектуру:
XML -> DataSet(какой?) -> Провайдер -> Connection(DCOM?) -> ClientDataSet -> DataSource.


Соловьев   (2003-02-13 12:18:00) [10]

у провадера Option :
oAllowCommandTextEnables the client to override the provider’s dataset by replacing its associated SQL text or the name of its stored procedure or table. These overrides are supplied to the GetRecords or Execute method.


Наверх

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