Вниз
Скачать: 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.023 c
3-1108715065
Prohodil Mimo
2005-02-18 11:24
2005.03.20
Как в IB6 удалить FOREIGN KEY ?


1-1110118262
Checist [root]
2005-03-06 17:11
2005.03.20
Морока с синтаксисисом


4-1107489071
guest_Dmitry
2005-02-04 06:51
2005.03.20
Открытие/закрытие приложения, ...


1-1110287709
a.denisov
2005-03-08 16:15
2005.03.20
Реализация ShowModal


1-1110365973
Gerakl
2005-03-09 13:59
2005.03.20
Delphi2005 + DotNet




   Наверх