Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];

Вниз

Парсер 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 вся ветка

Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.096 c
9-1103911275
Goldseeker
2004-12-24 21:01
2005.03.20
Динамическое создание объектов в glscene


3-1108928359
Vadim
2005-02-20 22:39
2005.03.20
Сортировка связанного поля


14-1109578444
Ev_genus
2005-02-28 11:14
2005.03.20
Вопрос фанатам и долгожителям


1-1110295911
xmrz
2005-03-08 18:31
2005.03.20
Delphi 2005 & ASP .NET


8-1101725343
Dufe
2004-11-29 13:49
2005.03.20
Как сделать в реалтайме обработку видео(DSPack)?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский