Вниз
Скачать: CL | DM;

Парсер XML   Найти похожие ветки 

 
ANB ©   (2005-03-01 10:16) [0]

Кто нибудь знает приличный компонент, который умеет DataSet преобразовывать в XML и обратно ?


 
Sancho ©   (2005-03-01 10:27) [1]

А чем TClientDataSet не подходит ?


 
Sergeich   (2005-03-01 11:24) [2]

uses MSXML,MSXMLDOM
руками пишется за 15 мин


 
Чапаев ©   (2005-03-01 11:41) [3]

Руками-то руками... Но ведь есть готовый TClientDataSet, зачем велосипед изобретать?

А если хочется изобретать, то я бы ещё посоветовал в сторону XML mapper посмотреть.


 
ANB ©   (2005-03-02 09:36) [4]

Так, так, поподробнее. Я работаю с Oracle через ODAC. Чего то не сильно у меня получилось туда TClientDataSet подрубить, а плодить коннекты и сессии как то не очень. И изобретать не хочется, так как проще тогда CSV, ибо мне XML только для сохранения результата запроса в строку или в BLOB нужен.


 
Erik1 ©   (2005-03-02 11:44) [5]

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 16:46) [6]


> 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-04 15:44) [7]

От отладки осталась.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.022 c
3-1108113683
Shizuku
2005-02-11 12:21
2005.03.20
Скроллинг в DBGrid


1-1109927584
DimaK
2005-03-04 12:13
2005.03.20
Помогите разобраться с RichEdit!


6-1106208547
xZero
2005-01-20 11:09
2005.03.20
бродкаст через хабы


3-1108965710
xOn
2005-02-21 09:01
2005.03.20
Создание БД


14-1109338118
vecna
2005-02-25 16:28
2005.03.20
Delphi 6, Delphi 7 & Windows XP




   Наверх