![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Парсер XML [D7, WinXP]
ANB © (2005-03-01 10:16:00)Кто нибудь знает приличный компонент, который умеет DataSet преобразовывать в XML и обратно ?
Erik1 (2005-03-04 15:44:00) [1]От отладки осталась.
ANB (2005-03-02 16:46:00) [2]
> Erik1 © (02.03.05 11:44) [5]
Круто. Только поясни, плз, для общего развития, для чего
if Source.Fields[i].GetData(MyBuffer) then
Dest.Fields[i].SetData(MyBuffer);
если ниже ты присваиваешь
Dest.Fields[i].Value := Source.Fields[i].Value;
Что будет, если GetData/SetData не делать, и что они делают ?
Я просто никогда с этими методами не работал.
Erik1 (2005-03-02 11:44:00) [3]procedure CopyDef(const Source: TDataSet; const Dest: TClientDataSet);
var
i: Integer;
MyBuffer: PChar;
begin
Dest.Close;
Dest.ReadOnly := False;
Source.Active := True;
Dest.FieldDefs.Clear;
for i := 0 to Source.Fields.Count - 1 do
with Source.Fields[i] do
Dest.FieldDefs.Add(FullName, DataType, Size, False);
Source.First;
Dest.CreateDataSet;
while not Source.Eof do
begin
Dest.Append;
for i := 0 to Source.Fields.Count - 1 do
begin
GetMem(MyBuffer, Source.Fields[i].DataSize);
try
if Source.Fields[i].GetData(MyBuffer) then
Dest.Fields[i].SetData(MyBuffer);
finally
FreeMem(MyBuffer, Source.Fields[i].DataSize);
end;
Dest.Fields[i].Value := Source.Fields[i].Value;
end;
Dest.Post;
Source.Next;
end;
Dest.ReadOnly := True;
end;
ANB (2005-03-02 09:36:00) [4]Так, так, поподробнее. Я работаю с Oracle через ODAC. Чего то не сильно у меня получилось туда TClientDataSet подрубить, а плодить коннекты и сессии как то не очень. И изобретать не хочется, так как проще тогда CSV, ибо мне XML только для сохранения результата запроса в строку или в BLOB нужен.
Чапаев (2005-03-01 11:41:00) [5]Руками-то руками... Но ведь есть готовый TClientDataSet, зачем велосипед изобретать?
А если хочется изобретать, то я бы ещё посоветовал в сторону XML mapper посмотреть.
Sergeich (2005-03-01 11:24:00) [6]uses MSXML,MSXMLDOM
руками пишется за 15 мин
Sancho (2005-03-01 10:27:00) [7]А чем TClientDataSet не подходит ?