Вниз
Скачать: 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.025 c
1-1109846733
Openfire
2005-03-03 13:45
2005.03.20
DBGrid и PageControl


14-1109712743
Andryk
2005-03-02 00:32
2005.03.20
Я се стрим поставил. Эх лепота!!!


6-1105646812
Дронище
2005-01-13 23:06
2005.03.20
Передача изображения по протоколу TCP/IP. ПОМОГИТЕ!!!


1-1109074588
Mishenka
2005-02-22 15:16
2005.03.20
Пиктограммы в компоненте...


14-1109232179
Cosinus
2005-02-24 11:02
2005.03.20
Проблеммы с VPN соединением...




   Наверх