<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.gbsoft.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Boris</id>
		<title>GB wiki - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.gbsoft.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Boris"/>
		<link rel="alternate" type="text/html" href="http://wiki.gbsoft.ru/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Boris"/>
		<updated>2026-04-09T19:31:39Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://wiki.gbsoft.ru/index.php?title=%D0%94%D0%B0%D1%82%D0%B0%D1%81%D0%B5%D1%82&amp;diff=486</id>
		<title>Датасет</title>
		<link rel="alternate" type="text/html" href="http://wiki.gbsoft.ru/index.php?title=%D0%94%D0%B0%D1%82%D0%B0%D1%81%D0%B5%D1%82&amp;diff=486"/>
				<updated>2010-03-31T02:47:09Z</updated>
		
		<summary type="html">&lt;p&gt;Boris: /* Примеры операций с датасетом. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:ГБ изнутри]]&lt;br /&gt;
Все продукты семейства ГБ не взаимодействуют с таблицами БД напрямую, а используют для этого хранимые процедуры или иные механизмы. Все эти инструменты должны уметь принимать и выдавать данные во внутреннем формате, основой для которого является формат клиентского датасета от Borland (будем называть этот формат пакетом данных или датасетом).&lt;br /&gt;
&lt;br /&gt;
Этот формат позволяет хранить объекты и их атрибуты, как и обычная таблица, кроме того, он поддерживает типизацию уровня предметной области, дополнительные свойства атрибутов для клиентского приложения (подпись, форматирование, правила расчета итогов и пр.), а также вложенные датасеты (субсеты).&lt;br /&gt;
&lt;br /&gt;
Субсет является полноправным датасетом, следовательно, он также может содержать субсеты, причем их вложенность не ограничена.&lt;br /&gt;
Следовательно, любой объект в ГБ может быть представлен в виде датасета с иерархической структурой, в котором простые атрибуты содержат данные простых типов, а связи этого объекта с другими представлены субсетами.&lt;br /&gt;
Особую роль играют субсеты, хранящие ровно одну запись (синглсеты или просто хипы). Обычно такие субсеты используются для хранения данных, которые определяет конечный пользователь.&lt;br /&gt;
&lt;br /&gt;
== Примеры операций с датасетом. ==&lt;br /&gt;
'''Копирование датасета в другой датасет:'''&amp;lt;br&amp;gt;&lt;br /&gt;
OpenDataSet(`copy:`, `DataSet1&amp;quot;, `DataSet2`)&lt;br /&gt;
&lt;br /&gt;
'''Сортировка:'''&amp;lt;br&amp;gt;&lt;br /&gt;
gb_setprop(`DataSet`,`IndexFieldNames`,`Имена полей через ;`)&lt;br /&gt;
&lt;br /&gt;
'''Загрузка датасета из файла:'''&amp;lt;br&amp;gt;&lt;br /&gt;
OpenDataSet(`file:`,`FileName,S=&amp;quot;c:\DataSet.cds&amp;quot;`,`DataSet`)&lt;br /&gt;
&lt;br /&gt;
'''Сохранить датасет в файл:'''&amp;lt;br&amp;gt;&lt;br /&gt;
SAVEDATASET(`DataSet` ,:file)&lt;br /&gt;
&lt;br /&gt;
'''Вывод датасета в диалоге:'''&amp;lt;br&amp;gt;&lt;br /&gt;
QueryParams(`Grid=DataSet`)&lt;br /&gt;
&lt;br /&gt;
'''Получить датасет данные из другого документа:'''&amp;lt;br&amp;gt;&lt;br /&gt;
CreateDataSet(`LinksDs`, `ID,I=&amp;quot;&amp;quot;),&amp;lt;br&amp;gt;&lt;br /&gt;
Assign(`LinksDs.*`, GB_GET( 11, :id, `Links` ))&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Очистить датасет:'''&amp;lt;br&amp;gt;&lt;br /&gt;
IIF(RECORDCOUNT( `DataSet` ) &amp;gt; 0,  DELETE( `DataSet.*` ))&lt;/div&gt;</summary>
		<author><name>Boris</name></author>	</entry>

	</feed>