![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
запись select-а в XML файл [D7]
Анна © (2008-01-25 12:33:00)Здравствуйте, мастера!
Можно ли в Delphi результаты select-a записать в файл XML? Чтобы дальше использовать файлы XML, как таблицы БД, делая к ним запросы, вставляя в них новые данные и удаляя неверные. И все это средствами Delphi. Если "да", то какие компоненты надо использовать?
Сделала в QA:
select id_prod,red_prod from fish_prod where id_prod in (1,2) for xml auto,elements
Записала рез-т в файл на жесткий диск .XML. Попробовала открыть его в интернет эксплор, выдает ошибку:
В текстовом комментарии обнаружен недопустимый знак. Ошибка при обработке ресурса ''file:///D:/tttt.XML''.
Прочитала в статье, что для корректной записи XML файла надо :
select id_prod,red_prod from fish_prod where id_prod in (1,2) for xml EXPLICIT
Но не знаю как в Delphi записать XML файлы.
Дайте пож ссылку, чтобы прочитать, если такая технология (работа с данными через XML файлы) возможна. И Ваше мнение.
ketmar (2008-01-28 09:53:00) [41]>[15] Анна (28.01.08 09:49)
SQLite, FireBird Embedded.
Анна (2008-01-28 09:49:00) [42]
> sniknik © (28.01.08 09:35) [14]
Что Вы можете посоветовать в качестве БД для удаленных клиентов, у которых слабые компьютеры и которые не смогут ничего инсталировать (СУБД). Спасибо за ответ!
sniknik (2008-01-28 09:35:00) [43]> Хотелось бы получить ответ от sniknik-а.
я не знаю ни одного sql движка работающего с XML.
> Может у кого-нибудь есть опыт работы с XML файлами?
а вот этого полно, как ни отбрыкивался... всегда среди клиентов находятся лохи поверившие в "универсальность" формата и пихающие его куда ни попадя...
у датасетов (ADO/Client) свой формат, универсальности нет, придется конвертировать, более менее всё открывает IDOM Document, но и там заморочки, достаточно большие базы не открывает памяти не хватает (было както прислали базу целиком в одном XML - 2 гб.) и если используется особый парсер (там указывается его гуид в заголовке) а у вас он не установлен то тоже проблема (как правило на "той" стороне даже не понимают, что от них хотят, какой COM щбьект? и как так вы не можете прочитать "универсальный" формат? ....).
если хочеш совета - откажись от XML в качестве базы. максимум на что он способен это передать данные из одного места в другое (и зачастую простейший dbf с этим проще, лучше справляется).
Анна (2008-01-28 09:16:00) [44]Решила поднять свою ветку. Может у кого-нибудь есть опыт работы с XML файлами? Поделитесь пож-та.
Анна (2008-01-25 16:27:00) [45]Если еще кто-ниб ответит к понедельнику по моему вопросу, буду очень благодарна. Хотелось бы получить ответ от sniknik-а.
Анна (2008-01-25 15:17:00) [46]
> TClientDataSet.SaveToFile(FileName, dfXML)
Я так и сделала. Но ругается, т.к. имя поля оч. длинное:
"Fieldname XML_F52E2B61-.... exceeds 31 chars"
ClientDataSet1.FieldDefs.Assign(Q_fish.FieldDefs);
ClientDataSet1.CreateDataSet;
ClientDataSet1.Open;
Q_fish.first;
while not(Q_fish.Eof) do
begin
ClientDataSet1.Append;
for i:=0 to Q_fish.FieldCount-1 do
begin
ClientDataSet1.Fields[i].Value:=Q_fish.Fields[i].Value;
end;
ClientDataSet1.Post;
Q_fish.Next;
end;//while
ClientDataSet1.SaveToFile('d:\hhhh',dfXML);
Ega23 (2008-01-25 15:08:00) [47]
> Вы написали ClientDataSet.
TClientDataSet.SaveToFile(FileName, dfXML)
Анна (2008-01-25 14:47:00) [48]
> Sergey13 © (25.01.08 14:37) [8]
Спасибо, знаю. Но хочу попробовать через XML! Поэтому и прошу консультаций у вас.
Sergey13 (2008-01-25 14:37:00) [49]> [3] Анна (25.01.08 14:11)
> У клиента не хочу устанавливать никакого сервера
Существуют [а-ля] встроенные (embedded) сервера. Например FireBird. Не требует инсталяции, но является ПОЛНОЦЕННЫМ SQL сервером.
Анна (2008-01-25 14:32:00) [50]
> clickmaker © (25.01.08 14:17) [6]
> это только Local SQL. Но он ограничен
Про SQL for XML знаю, что он не поддерживает вложенный оператор SELECT, преобразование данных и т.д.
Подскажите пож-та как корректно записать XML файл? Так же как текстовый? (WriteLn напр.)
Вы написали ClientDataSet. Что и в каких св=вах надо указать?
clickmaker (2008-01-25 14:17:00) [51]
> не хочу устанавливать никакого сервера. Но хочу пользоваться
> возможностями SQL запросов
это только Local SQL. Но он ограничен
Kolan (2008-01-25 14:14:00) [52]> второе действие сделать
Чтобы и рыбку съесть, и пользоваться возможностями SQL запросов.
?
Ega23 (2008-01-25 14:11:00) [53]
> У клиента не хочу устанавливать никакого сервера. Но хочу
> пользоваться возможностями SQL запросов.
Так не бывает.
Чтобы и рыбку съесть, и второе действие сделать.
Анна (2008-01-25 14:11:00) [54]
> А какой в этом смысл?
У клиента не хочу устанавливать никакого сервера. Но хочу пользоваться возможностями SQL запросов.
Sergey13 (2008-01-25 13:17:00) [55]> [0] Анна (25.01.08 12:33)
> Чтобы дальше использовать файлы XML, как таблицы БД, делая
> к ним запросы, вставляя в них новые данные и удаляя неверные.
А какой в этом смысл?
clickmaker (2008-01-25 12:41:00) [56]ClientDataSet