Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.08.2014, 17:45
Heneken Heneken вне форума
Новичок
 
Регистрация: 11.09.2011
Сообщения: 73
Версия Delphi: Delphi XE6
Репутация: 10
По умолчанию Нужны пояснения по работе с TclientDataset

Доброго времени суток ув. программисты.
Вопрос состоит в следующем:
Создаю дата сет
Код:
QWER.SQL.Text:='select PERS.* from PERS,SLUCH'+
' WHERE SLUCH.ID_PAC=PERS.ID_PAC and SLUCH.DATA_2>='+quotedstr(DateToStr(d1.date))+
' and SLUCH.DATA_2<='+quotedstr(DateToStr(d2.date));
//InputBox('','',QWER.SQL.Text);
QWER.Active:=True;

dat_sets.FieldDefs:=QWER.FieldDefs; //Родитель

QWER2.SQL.Text:='select first 1 SLUCH.VIDPOM,SLUCH.DS1,SLUCH.IDDOKT from SLUCH,USL'+
' WHERE SLUCH.SLUCH_UUID=USL.SLUCH_UUID and SLUCH.DATA_2>='+quotedstr(DateToStr(d1.date))+
' and SLUCH.DATA_2<='+quotedstr(DateToStr(d2.date))+' and SLUCH.ID_PAC='+quotedstr(id_p);
//InputBox('','',QWER2.SQL.Text);
QWER2.Active:=True;

dat_sets.FieldDefs[dat_sets.FieldDefs.Count-1].ChildDefs:=QWER2.FieldDefs;
//Дочка

dat_sets.CreateDataSet; 
dat_sets.DisableControls;

Тут все окей.

Заполняю датасетик

Код:
while not QWER.Eof do
begin
try
dat_sets.Insert;
dat_sets.CopyFields(QWER.FieldDefs.DataSet);
dat_sets.Post;//Родитель 

 with TDataSetField(dat_sets.Fields[dat_sets.FieldDefs.Count-1]).NestedDataSet do
 begin
  Insert;
  Fields[0].asstring='Бла бла бла';
  Fields[1].asstring='Блу блу блу';
  Post;
 end;
QWER.Next;
except
dat_sets.SaveToFile(ExtractFilePath(Application.ExeName)+'AS.xml', dfXMLUTF8);
 dat_sets.FieldDefs.Clear;
 dat_sets.Close;
 Exit;
end;
end;

Ну и к сути. Метод заполнения
Код:
 with TDataSetField(dat_sets.Fields[dat_sets.FieldDefs.Count-1]).NestedDataSet do
 begin
  Insert;
  Fields[0].asstring='Бла бла бла';
  Fields[1].asstring='Блу блу блу';
  Post;
 end;
не подходит. Мне нужно сразу запихнуть все филды, а не таскать их по 1.
С компонентом только начал разбираться,строго не судим.
Информации в интернете по заполнению без вложений масса,но с вложениями толковых примеров нет.
Пробовал заполнять по разному, колдовал и так и сяк,но весь датасет разом перетащить не могу. Заранее прошу не таскать меня по F1 и слать в дебри изучения основ Delphi и прочего. Просто черкните пример. Я думаю сунуть его весь не должно быть огромным кодом. Есть нюанс какой то,а какой не знаю..Заранее спасибо.
Ответить с цитированием
  #2  
Старый 24.08.2014, 19:03
Heneken Heneken вне форума
Новичок
 
Регистрация: 11.09.2011
Сообщения: 73
Версия Delphi: Delphi XE6
Репутация: 10
По умолчанию

Хах. Победил сам. Кому интересно вот...
Код:
with TDataSetField(dat_sets.Fields[dat_sets.FieldDefs.Count-1]).NestedDataSet   do
 begin
  Insert;
  CopyFields(QWER2.FieldDefs.DataSet);
  Post;
 end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:38.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter