<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>T-SQL, Databases, Development</title>
	<atom:link href="http://t-sql.com.ua/index.php/feed" rel="self" type="application/rss+xml" />
	<link>http://t-sql.com.ua</link>
	<description>SerB SQL Blog. Блог об SQL, базах и всему что с ними связано.</description>
	<lastBuildDate>Fri, 03 Feb 2012 15:43:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Отправка почты в C#</title>
		<link>http://t-sql.com.ua/index.php/archives/258</link>
		<comments>http://t-sql.com.ua/index.php/archives/258#comments</comments>
		<pubDate>Fri, 03 Feb 2012 15:42:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Общее]]></category>
		<category><![CDATA[MailClient]]></category>
		<category><![CDATA[SMTP]]></category>

		<guid isPermaLink="false">http://t-sql.com.ua/?p=258</guid>
		<description><![CDATA[В предыдущем посте я писал о получении и чтении мейлов, теперь же речь пойдёт об отправке сообщений из того же C#. В целом, тут сложностей нет никаких. Нет необходимости искать какие-то внешние библиотеки и компоненты. .Net Framework содержит в своем пространстве имен все необходимое для формирования письма и его отправки по SMTP протоколу.  Прежде всего [...]]]></description>
			<content:encoded><![CDATA[<p>В предыдущем посте я писал о получении и чтении мейлов, теперь же речь пойдёт об отправке сообщений из того же <a href="http://t-sql.com.ua/index.php/archives/tag/c" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  C#">C#</a>. В целом, тут сложностей нет никаких. Нет необходимости искать какие-то внешние библиотеки и компоненты. .Net Framework содержит в своем пространстве имен все необходимое для формирования письма и его отправки по <a href="http://t-sql.com.ua/index.php/archives/tag/smtp" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  SMTP">SMTP</a> протоколу.  Прежде всего добавьте:</p>
<p><strong>using System.Net.Mail;</strong></p>
<p>Тут содержится все, что нам необходимо для отправки почты.</p>
<p>Далее приведу функцию, которая отправляет сообщение:</p>
<blockquote><p>  void SendMess(<a href="http://t-sql.com.ua/index.php/archives/tag/string" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  String">string</a> subject, <a href="http://t-sql.com.ua/index.php/archives/tag/string" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  String">string</a> body, <a href="http://t-sql.com.ua/index.php/archives/tag/string" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  String">string</a> host, int port, <a href="http://t-sql.com.ua/index.php/archives/tag/string" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  String">string</a> user, <a href="http://t-sql.com.ua/index.php/archives/tag/string" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  String">string</a> pass, <a href="http://t-sql.com.ua/index.php/archives/tag/string" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  String">string</a> From, <a href="http://t-sql.com.ua/index.php/archives/tag/string" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  String">string</a> To,bool usessl)</p>
<p>{</p>
<p>try</p>
<p>{</p>
<p>MailMessage Msg = new MailMessage();</p>
<p>Msg.To.Add(To);</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>// From</p>
<p>System.Net.Mail.MailAddress mailAddress = new System.Net.Mail.MailAddress(From);</p>
<p>Msg.From = mailAddress;</p>
<p><span id="more-258"></span></p>
<p>// Subject and Body</p>
<p>&nbsp;</p>
<p>Msg.Subject = subject;</p>
<p>Msg.Body = body;</p>
<p>&nbsp;</p>
<p>// Init SmtpClient and send message</p>
<p>SmtpClient smtpClient = new SmtpClient(host, port);</p>
<p>System.Net.NetworkCredential credentials = new System.Net.NetworkCredential(user, pass);</p>
<p>smtpClient.Credentials = credentials;</p>
<p>smtpClient.EnableSsl = usessl;</p>
<p>&nbsp;</p>
<p>smtpClient.SendAsync(Msg, subject);</p>
<p>}</p>
<p>catch (Exception ex)</p>
<p>{</p>
<p>Logging.ErrLog(ex);</p>
<p>}</p>
<p>&nbsp;</p>
<p>}</p></blockquote>
<p>Приведенная процедура сформирует письмо и отправит его через smtp сервер с указанными параметрами.</p>
<p>Пользуйтесь !</p>

	Метки:<a href="http://t-sql.com.ua/index.php/archives/tag/c" title="C#" rel="tag">C#</a>, <a href="http://t-sql.com.ua/index.php/archives/tag/mailclient" title="MailClient" rel="tag">MailClient</a>, <a href="http://t-sql.com.ua/index.php/archives/tag/smtp" title="SMTP" rel="tag">SMTP</a><br />

	<h4>Читайте также:</h4>
	<ul class="st-related-posts">
	<li><a href="http://t-sql.com.ua/index.php/archives/250" title="C#. Работа с почтой через OpenPop (18.01.2012)">C#. Работа с почтой через OpenPop</a> (0)</li>
	<li><a href="http://t-sql.com.ua/index.php/archives/181" title="Работаем c XML(англ. eXtensible Markup Language- расширяемый язык разметки) в C# (29.08.2009)">Работаем c XML(англ. eXtensible Markup Language- расширяемый язык разметки) в C#</a> (1)</li>
	<li><a href="http://t-sql.com.ua/index.php/archives/16" title="Медленный DataGridView в C#.NET (03.08.2009)">Медленный DataGridView в C#.NET</a> (0)</li>
	<li><a href="http://t-sql.com.ua/index.php/archives/130" title="Имя базы данных в sql-командах MySqlDataAdapter (15.08.2009)">Имя базы данных в sql-командах MySqlDataAdapter</a> (1)</li>
	<li><a href="http://t-sql.com.ua/index.php/archives/154" title="Еще один баг Visual Studio. Designer и TabControl не дружат. (18.08.2009)">Еще один баг Visual Studio. Designer и TabControl не дружат.</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://t-sql.com.ua/index.php/archives/258/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C#. Работа с почтой через OpenPop</title>
		<link>http://t-sql.com.ua/index.php/archives/250</link>
		<comments>http://t-sql.com.ua/index.php/archives/250#comments</comments>
		<pubDate>Wed, 18 Jan 2012 14:49:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[MailClient]]></category>
		<category><![CDATA[OpenPop]]></category>
		<category><![CDATA[POP3]]></category>

		<guid isPermaLink="false">http://t-sql.com.ua/?p=250</guid>
		<description><![CDATA[Недавно была задача обработки писем по pop3 протоколу. Перекопал кучу компонент, но наконец нашёл подходящую во всех отношениях библиотеку OpenPop. У одних были проблемы с кодировками, другие &#171;кушали&#187; много ресурсов, третьи ещё чем-то не подошли. Качать тут:  http://hpop.sourceforge.net/ Привожу код, который, надеюсь, кому-то когда-то поможет &#160; using (Pop3Client client = new Pop3Client()) { // Connect [...]]]></description>
			<content:encoded><![CDATA[<p>Недавно была задача обработки писем по <a href="http://t-sql.com.ua/index.php/archives/tag/pop3" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  POP3">pop3</a> протоколу. Перекопал кучу компонент, но наконец нашёл подходящую во всех отношениях библиотеку <a href="http://t-sql.com.ua/index.php/archives/tag/openpop" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  OpenPop">OpenPop</a>. У одних были проблемы с кодировками, другие &#171;кушали&#187; много ресурсов, третьи ещё чем-то не подошли.</p>
<p>Качать тут:  <a href="http://hpop.sourceforge.net/" target="_blank">http://hpop.sourceforge.net/</a></p>
<p>Привожу код, который, надеюсь, кому-то когда-то поможет <img src='http://t-sql.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span id="more-250"></span></p>
<blockquote><p>&nbsp;</p>
<p>using (Pop3Client client = new Pop3Client())</p>
<p>{</p>
<p>// Connect to the server</p>
<p>client.Connect(&#171;host&#187;, port, false);</p>
<p>&nbsp;</p>
<p>// Authenticate ourselves towards the server</p>
<p>client.Authenticate(&#171;login&#187;, &#171;password&#187;);</p>
<p>&nbsp;</p>
<p>List&lt;<a href="http://t-sql.com.ua/index.php/archives/tag/string" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  String">string</a>&gt; msgs = client.GetMessageUids();  //получаем список айдишников писем в почте</p>
<p>&nbsp;</p>
<p>for (int i = 1; i &lt;= msgs.Count; i++)   //организация цикла по сообщениям в почте</p>
<p>{</p>
<p>&nbsp;</p>
<p>Message msg = client.GetMessage(i);  // получаем сообщение</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>List&lt;MessagePart&gt; mpart = msg.FindAllAttachments();   // находим  ВСЕ приаттаченные файлы</p>
<p>&nbsp;</p>
<p>string body = &#171;&#187;;</p>
<p>// ищем первую плейнтекст версию в сообщении</p>
<p>MessagePart mpPlain = msg.FindFirstPlainTextVersion();</p>
<p>&nbsp;</p>
<p>if (mpPlain != null)</p>
<p>{</p>
<p>Encoding enc = mpPlain.BodyEncoding;</p>
<p>body = enc.GetString(mpPlain.Body);     //  получаем текст сообщения</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>}</p>
<p>if (mpart.Count &gt; 0)   // если есть аттачменты то &#8230;</p>
<p>{</p>
<p>&nbsp;</p>
<p>foreach (MessagePart attach in mpart)</p>
<p>{</p>
<p>&nbsp;</p>
<p>// read data from attachment  . допустим у меня в аттачменте текст в ЮТФ8. получу его содержание</p>
<p>string ticket = Encoding.UTF8.GetString(attach.Body);</p>
<p>// что-то делаю с ним</p>
<p>}</p>
<p>Console.WriteLine(&#171;Mail with subject &#187; + msg.Headers.Subject + &#171;  is ready!&#187;);</p>
<p>}</p>
<p>&nbsp;</p>
<p>}</p>
<p>}</p></blockquote>
<p>&nbsp;</p>
<p>Успехов !</p>

	Метки:<a href="http://t-sql.com.ua/index.php/archives/tag/c" title="C#" rel="tag">C#</a>, <a href="http://t-sql.com.ua/index.php/archives/tag/mailclient" title="MailClient" rel="tag">MailClient</a>, <a href="http://t-sql.com.ua/index.php/archives/tag/openpop" title="OpenPop" rel="tag">OpenPop</a>, <a href="http://t-sql.com.ua/index.php/archives/tag/pop3" title="POP3" rel="tag">POP3</a><br />

	<h4>Читайте также:</h4>
	<ul class="st-related-posts">
	<li><a href="http://t-sql.com.ua/index.php/archives/258" title="Отправка почты в C# (03.02.2012)">Отправка почты в C#</a> (0)</li>
	<li><a href="http://t-sql.com.ua/index.php/archives/181" title="Работаем c XML(англ. eXtensible Markup Language- расширяемый язык разметки) в C# (29.08.2009)">Работаем c XML(англ. eXtensible Markup Language- расширяемый язык разметки) в C#</a> (1)</li>
	<li><a href="http://t-sql.com.ua/index.php/archives/16" title="Медленный DataGridView в C#.NET (03.08.2009)">Медленный DataGridView в C#.NET</a> (0)</li>
	<li><a href="http://t-sql.com.ua/index.php/archives/130" title="Имя базы данных в sql-командах MySqlDataAdapter (15.08.2009)">Имя базы данных в sql-командах MySqlDataAdapter</a> (1)</li>
	<li><a href="http://t-sql.com.ua/index.php/archives/154" title="Еще один баг Visual Studio. Designer и TabControl не дружат. (18.08.2009)">Еще один баг Visual Studio. Designer и TabControl не дружат.</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://t-sql.com.ua/index.php/archives/250/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Закончилось место под счетчик в таблице Integer IDENTITY runs out of scope</title>
		<link>http://t-sql.com.ua/index.php/archives/236</link>
		<comments>http://t-sql.com.ua/index.php/archives/236#comments</comments>
		<pubDate>Mon, 16 Jan 2012 09:48:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[T-SQL]]></category>
		<category><![CDATA[identity out of scope]]></category>
		<category><![CDATA[автоинкремент]]></category>

		<guid isPermaLink="false">http://www.t-sql.com.ua/?p=236</guid>
		<description><![CDATA[Если у вас в таблице есть автоинкрементное поле, к примеру, типа int , и следующее автоинкрементное значение превышает максимальное значение для типа этого поля, не отчаивайтесь &#8212; это не беда Такое происходит с большими таблицами, откуда часто удаляют и вставляют новые значения. Таким образом в нумерации имеются провалы из-за удаления данных, а максимальное значение для типа [...]]]></description>
			<content:encoded><![CDATA[<p>Если у вас в таблице есть автоинкрементное поле, к примеру, типа <strong><span style="color: #0000ff;">int</span></strong><span style="color: #0000ff;"><span style="color: #000000;"> , и следующее автоинкрементное значение превышает максимальное значение для типа этого поля, не отчаивайтесь &#8212; это не беда <img src='http://t-sql.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </span></span></p>
<p>Такое происходит с большими таблицами, откуда часто удаляют и вставляют новые значения. Таким образом в нумерации имеются провалы из-за удаления данных, а максимальное значение для типа данных счетчика быстро достигается. Ошибка будет примерно такой такой:<span style="color: #0000ff;">  Server: Msg 8115, Level 16, State 1, Line 2 Arithmetic overflow error converting IDENTITY to data type int. Arithmetic overflow occurred.</span></p>
<p>Варианты решения:</p>
<ol>
<li>Расширьте тип данных. Если у вас был <strong><span style="color: #0000ff;">int</span></strong>, поставьте <strong><span style="color: #0000ff;">bigint</span></strong>. Помните, если у вас значение этого поля использовалось в процедурах и прочем коде, вам придется их исправить на использование нового типа!</li>
<li>Второй вариант ленивый. Если у Вас данные в таблице постоянно обновляются и есть большой кусок места до минимального значения счетчика( <span style="color: #0000ff;">select</span><span style="color: #ff00ff;">min</span>(auto_inc_field) <span style="color: #0000ff;">from</span>your_table) в этом поле, если смотреть от нуля, и если вы уверены, что если вы начнете нумерацию с нуля, то пока вы заполните этот промежуток, старые данные уже будут удалены, соответственно блок нумерации счетчика освободится, то этот вариант для Вас!   Вы можете элементарно начать нумерацию заново или с какого-то конкретного стартового номера следующей командой:
<pre><span style="color: #0000ff;">DBCC CHECKIDENT</span> ("your_table", RESEED, 1);
GO</pre>
<p>Эта команда заменяет значение следующего автоинкрементного значение на 1. То есть, это есть замена текущего автоикремента.</p>
<p>&nbsp;</li>
<li> Вариант для тех у кого есть время и в случае если строк в таблице меньше чем вариантов значений счетчика. Вариант один из наиболее надёжных. Создаете копию таблицы (желательно без индексов) и порциями копируете данные из старой таблицы в новую. Таким образом вы получаете все ваши данные с индексацией с нуля плотно упакованные относительно значений счетчика.<br />
Конечно, если у вас есть связанные таблицы по этому полю, Вам конечно ещё придется обновить старые значения счетчиков на новые.</li>
</ol>
<p>Если есть вопросы или другие способы решения проблемы, то милости прошу, в коменты!</p>

	Метки:<a href="http://t-sql.com.ua/index.php/archives/tag/identity-out-of-scope" title="identity out of scope" rel="tag">identity out of scope</a>, <a href="http://t-sql.com.ua/index.php/archives/tag/%d0%b0%d0%b2%d1%82%d0%be%d0%b8%d0%bd%d0%ba%d1%80%d0%b5%d0%bc%d0%b5%d0%bd%d1%82" title="автоинкремент" rel="tag">автоинкремент</a><br />

	<h4>Читайте также:</h4>
	<ul class="st-related-posts">
	<li>Похожих статей не найдено</li>
	</ul>

]]></content:encoded>
			<wfw:commentRss>http://t-sql.com.ua/index.php/archives/236/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Снова в строю !</title>
		<link>http://t-sql.com.ua/index.php/archives/233</link>
		<comments>http://t-sql.com.ua/index.php/archives/233#comments</comments>
		<pubDate>Sat, 14 Jan 2012 20:07:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Общее]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.t-sql.com.ua/?p=233</guid>
		<description><![CDATA[Наконец-то выкупил доменное имя и восстановил свой блог. Ожидайте скоро много новостей Во время восстановления наткнулся на проблему с обновлением wordpress. Оказывается, нужно было добавить строку define(&#8216;WP_TEMP_DIR&#8217;,'/tmp&#8217;);  в файл конфига. Нужно было также добавить эту папку и дать на неё права на запись. &#160; Метки:wordpress Читайте также: Похожих статей не найдено]]></description>
			<content:encoded><![CDATA[<p>Наконец-то выкупил доменное имя и восстановил свой блог. Ожидайте скоро много новостей <img src='http://t-sql.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Во время восстановления наткнулся на проблему с обновлением <a href="http://t-sql.com.ua/index.php/archives/tag/wordpress" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  wordpress">wordpress</a>. Оказывается, нужно было добавить строку</p>
<p><span style="color: #ff0000;">define(&#8216;WP_TEMP_DIR&#8217;,'/tmp&#8217;); </span></p>
<p>в файл конфига. Нужно было также добавить эту папку и дать на неё права на запись.</p>
<p>&nbsp;</p>

	Метки:<a href="http://t-sql.com.ua/index.php/archives/tag/wordpress" title="wordpress" rel="tag">wordpress</a><br />

	<h4>Читайте также:</h4>
	<ul class="st-related-posts">
	<li>Похожих статей не найдено</li>
	</ul>

]]></content:encoded>
			<wfw:commentRss>http://t-sql.com.ua/index.php/archives/233/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server Driver for PHP 1.1 &#8212; October 2009</title>
		<link>http://t-sql.com.ua/index.php/archives/223</link>
		<comments>http://t-sql.com.ua/index.php/archives/223#comments</comments>
		<pubDate>Tue, 27 Oct 2009 15:38:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Общее]]></category>
		<category><![CDATA[СУБД]]></category>
		<category><![CDATA[MSSQL]]></category>
		<category><![CDATA[PHP Driver]]></category>

		<guid isPermaLink="false">http://www.t-sql.com.ua/?p=223</guid>
		<description><![CDATA[Майкрософт выпустил собственный драйвер для PHP, с поддержкой возможностей Native SQL Client. Доступен также его исходный код: http://sqlsrvphp.codeplex.com/SourceControl/ListDownloadableCommits.aspx#DownloadLatest Сам драйвер можно скачать тут: http://www.microsoft.com/downloads/details.aspx?FamilyID=ccdf728b-1ea0-48a8-a84a-5052214caad9&#38;displaylang=en Метки:MSSQL, PHP Driver Читайте также: Устанавливаем SQL на PHP (0) Отказ от расширенных хранимых процедур (0)]]></description>
			<content:encoded><![CDATA[<p>Майкрософт выпустил собственный драйвер для PHP, с поддержкой возможностей Native <a href="http://t-sql.com.ua/index.php/archives/tag/sql" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  SQL">SQL</a> Client. Доступен также его исходный код:</p>
<p><a href="http://sqlsrvphp.codeplex.com/SourceControl/ListDownloadableCommits.aspx#DownloadLatest" target="_blank">http://sqlsrvphp.codeplex.com/SourceControl/ListDownloadableCommits.aspx#DownloadLatest</a></p>
<p>Сам драйвер можно <a href="http://t-sql.com.ua/index.php/archives/tag/download_" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  скачать">скачать</a> тут:</p>
<p><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ccdf728b-1ea0-48a8-a84a-5052214caad9&amp;displaylang=en" target="_blank">http://www.microsoft.com/downloads/details.aspx?FamilyID=ccdf728b-1ea0-48a8-a84a-5052214caad9&amp;displaylang=en</a></p>

	Метки:<a href="http://t-sql.com.ua/index.php/archives/tag/mssql" title="MSSQL" rel="tag">MSSQL</a>, <a href="http://t-sql.com.ua/index.php/archives/tag/php-driver" title="PHP Driver" rel="tag">PHP Driver</a><br />

	<h4>Читайте также:</h4>
	<ul class="st-related-posts">
	<li><a href="http://t-sql.com.ua/index.php/archives/86" title="Устанавливаем SQL на PHP (06.08.2009)">Устанавливаем SQL на PHP</a> (0)</li>
	<li><a href="http://t-sql.com.ua/index.php/archives/12" title="Отказ от расширенных хранимых процедур (03.08.2009)">Отказ от расширенных хранимых процедур</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://t-sql.com.ua/index.php/archives/223/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>История одного восстановления БД(MS SQL Server 2005). Часть 2</title>
		<link>http://t-sql.com.ua/index.php/archives/220</link>
		<comments>http://t-sql.com.ua/index.php/archives/220#comments</comments>
		<pubDate>Thu, 22 Oct 2009 15:09:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[T-SQL]]></category>
		<category><![CDATA[Общее]]></category>
		<category><![CDATA[СУБД]]></category>
		<category><![CDATA[DBCC CheckDB]]></category>
		<category><![CDATA[DBCC DBReindex]]></category>
		<category><![CDATA[MS SQL Server]]></category>
		<category><![CDATA[Repair DB]]></category>

		<guid isPermaLink="false">http://www.t-sql.com.ua/?p=220</guid>
		<description><![CDATA[Продолжаю тему восстановления  БД, начатую тут. Закончилось всё довольно таки успешно. Итак&#8230;. Не помог мне ALTER DATABASE &#8216;DatabaseName&#8217;SET SINGLE_USER DBCC CHECKDB(&#8216;DatabaseName&#8217;, REPAIR_REBUILD) ALTER DATABASE &#8216;DatabaseName&#8217; SET MULTI_USER не помог и DBCC CHECKDB(&#8216;DatabaseName&#8217;, REPAIR_ALLOW_DATA_LOSS) Так как удалось найти битую таблицу(в ней как раз наибольшее кол-во строк), принялся её реанимировать нестандартными способами. Попробовал сделать выборку данных- выкинуло [...]]]></description>
			<content:encoded><![CDATA[<p>Продолжаю тему восстановления  БД, начатую <a title="http://www.t-sql.com.ua/index.php/archives/214" href="http://www.t-sql.com.ua/index.php/archives/214" target="_blank">тут</a>. Закончилось всё довольно таки успешно.</p>
<p>Итак&#8230;. Не помог мне</p>
<p><strong>ALTER DATABASE</strong> <span style="color: #ff0000;">&#8216;DatabaseName&#8217;</span><strong>SET SINGLE_USER</strong><br />
<strong><a href="http://t-sql.com.ua/index.php/archives/tag/dbcc-checkdb" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  DBCC CheckDB">DBCC CHECKDB</a></strong>(<span style="color: #ff0000;">&#8216;DatabaseName&#8217;</span>,<em> <strong>REPAIR_REBUILD</strong></em>)<br />
<strong>ALTER DATABASE</strong> <span style="color: #ff0000;">&#8216;DatabaseName&#8217; </span><strong>SET MULTI_USER</strong></p>
<p>не помог и</p>
<p><strong>DBCC CHECKDB</strong>(<span style="color: #ff0000;">&#8216;DatabaseName&#8217;</span>,<strong><em> </em>REPAIR_ALLOW_DATA_LOSS</strong>)</p>
<p>Так как удалось найти битую таблицу(в ней как раз наибольшее кол-во строк), принялся её реанимировать нестандартными способами. Попробовал сделать выборку данных- выкинуло в ошибку, но успело вернуть несколько миллионов записей. Попробовал сделать выборку, с ключом <strong><em>desc</em></strong> &#8212; таким образом вытащил ещё кусок данных с конца таблицы. Кстати, select стал выбирать больше записей после того как убил все индексы кроме Primary Key. Пошаманив ещё несколько часов и не получив желаемого результата, создал клон битой таблицы без данных и с помощью:</p>
<blockquote><p>insert into tablename(fields) select top <em>КОЛ-ВО_СТРОК1</em> *  from tableoriginal order by fieldnamePK asc</p>
<p>insert into tablename(fields) select top <em>КОЛ-ВО_СТРОК2</em> *  from tableoriginal order by fieldnamePK desc</p></blockquote>
<p>заполнил новую таблицу данными. Старую удалил, а эту переименовал так как нужно.</p>
<p>Должен сказать, что таким образом удалось восстановить почти все записи.</p>
<p>Для остальных БД выполнил <strong>DBCC CHECKDB()</strong> , откуда узнал какие из таблиц битые. Им помогла DBCC DBReidex(&#8216;Tablename&#8217;) для битых таблиц.</p>
<p>На этом всё и закончилось.</p>
<p>Желаю вам надёжных хардов и меньше подобных проблем!</p>

	Метки:<a href="http://t-sql.com.ua/index.php/archives/tag/dbcc-checkdb" title="DBCC CheckDB" rel="tag">DBCC CheckDB</a>, <a href="http://t-sql.com.ua/index.php/archives/tag/dbcc-dbreindex" title="DBCC DBReindex" rel="tag">DBCC DBReindex</a>, <a href="http://t-sql.com.ua/index.php/archives/tag/ms-sql-server" title="MS SQL Server" rel="tag">MS SQL Server</a>, <a href="http://t-sql.com.ua/index.php/archives/tag/repair-db" title="Repair DB" rel="tag">Repair DB</a><br />

	<h4>Читайте также:</h4>
	<ul class="st-related-posts">
	<li><a href="http://t-sql.com.ua/index.php/archives/214" title="История одного восстановления БД(MS SQL Server 2005) (15.10.2009)">История одного восстановления БД(MS SQL Server 2005)</a> (1)</li>
	<li><a href="http://t-sql.com.ua/index.php/archives/75" title="Изменения перестроения индексов в SQL Server. (05.08.2009)">Изменения перестроения индексов в SQL Server.</a> (1)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://t-sql.com.ua/index.php/archives/220/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GPS мониторинг.</title>
		<link>http://t-sql.com.ua/index.php/archives/217</link>
		<comments>http://t-sql.com.ua/index.php/archives/217#comments</comments>
		<pubDate>Fri, 16 Oct 2009 11:58:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Общее]]></category>
		<category><![CDATA[GPS monitoring]]></category>

		<guid isPermaLink="false">http://www.t-sql.com.ua/?p=217</guid>
		<description><![CDATA[Продолжаем работать с системами GPS мониторинга. Скоро выйдет версия v2.0, с множеством новых функций, которые приятно удивят пользователей системы. Сейчас, упор как раз и делаем на онлайновую web версию. Она имеет ряд преимуществ по сравнению с классической оффлайновой версией. Пользователю системы не нужно дополнительное программное обеспечение, сервер с базой данных, а нужен лишь доступ в [...]]]></description>
			<content:encoded><![CDATA[<p>Продолжаем работать с системами <a href="http://t-sql.com.ua/index.php/archives/tag/gps" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  GPS">GPS</a> мониторинга. Скоро выйдет версия v2.0, с множеством новых функций, которые приятно удивят пользователей системы. Сейчас, упор как раз и делаем на онлайновую web версию. Она имеет ряд преимуществ по сравнению с классической оффлайновой версией. Пользователю системы не нужно дополнительное программное обеспечение, сервер с базой данных, а нужен лишь доступ в интернет и простой интернет браузер. При этом  открываются широчайшие возможности по мониторингу, анализу, контролю передвижения и прочие, которыми вы можете пользоваться  из любой точки мира с доступом в интернет. За считанные секунды вы получаете доступ к системе со всем её функционалом в независимости от вашего местоположения: дома, на работе, в отпуске на островах.</p>
<p>Не смотря на быстрое развитие WEB версии, не забываем и об оффлайновых системах. Для них мы разрабатываем новые отчёты, улучшаем интерфейс и интегрируем с такими картами как Google, Bing, Yandex и т.п.</p>
<p>В целом, нашу систему уже можно представить как гибрид &#8212; объединёние оффлайновой и онлайновой версии. При этом обе части полноценны.</p>
<p>Ознакомиться с WEB версией можно  тут: <a href="http://online.monitoring-gps.com.ua/" target="_blank">http://www.monitoring-gps.com.ua/gps_monitoring/index.php</a></p>
<p>Подробнее можно узнать тут: <a title="GPS Monitoring" href="http://monitoring-gps.com.ua/" target="_blank">http://monitoring-gps.com.ua/</a></p>
<p>Продолжение следует&#8230;</p>

	Метки:<a href="http://t-sql.com.ua/index.php/archives/tag/gps-monitoring" title="GPS monitoring" rel="tag">GPS monitoring</a><br />

	<h4>Читайте также:</h4>
	<ul class="st-related-posts">
	<li><a href="http://t-sql.com.ua/index.php/archives/206" title="GPS Monitoring ONLINE (29.09.2009)">GPS Monitoring ONLINE</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://t-sql.com.ua/index.php/archives/217/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>История одного восстановления БД(MS SQL Server 2005)</title>
		<link>http://t-sql.com.ua/index.php/archives/214</link>
		<comments>http://t-sql.com.ua/index.php/archives/214#comments</comments>
		<pubDate>Thu, 15 Oct 2009 14:43:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Общее]]></category>
		<category><![CDATA[СУБД]]></category>
		<category><![CDATA[DBCC CheckDB]]></category>
		<category><![CDATA[DBCC DBReindex]]></category>
		<category><![CDATA[MS SQL Server]]></category>
		<category><![CDATA[RAID]]></category>

		<guid isPermaLink="false">http://www.t-sql.com.ua/?p=214</guid>
		<description><![CDATA[История началась с того, что умер винт в RAID(0). Слава Богам, удалось создать виртуальный образ с помощью RAID Reconstructor от Runtime Software. С помощью приложения Captain Nemo(от того же Runtime Software) часов за 8-10(два винта по 300 ГБ) удалось построить структуру и файловой системы опираясь на виртуальный образ созданный RAID Reconstructor&#187;ом. Ещё за несколько часов [...]]]></description>
			<content:encoded><![CDATA[<p>История началась с того, что умер винт в <a href="http://t-sql.com.ua/index.php/archives/tag/raid" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  RAID">RAID</a>(0). Слава Богам, удалось создать виртуальный образ с помощью<strong> RAID Reconstructor</strong> от Runtime Software. С помощью приложения <strong>Captain Nemo</strong>(от того же Runtime Software) часов за 8-10(два винта по 300 ГБ) удалось построить структуру и файловой системы опираясь на виртуальный образ созданный RAID Reconstructor&#187;ом. Ещё за несколько часов восстановились базы, общим весом около 10 ГБ. 70% работы, казалось бы, выполнено! Особо не радуясь, принялся восстанавливать сервер.</p>
<p>Взял новые винты. Установил ту же систему, тот же <a href="http://t-sql.com.ua/index.php/archives/tag/sql" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  SQL">SQL</a> Server 2005 с тем же collation. Сделал Attach DataBase для всех восстановленных баз, кроме системных. Для того, чтобы избежать лишних проблем, базы нужно размещать в те же папки что и до того как система упала. Заменил базу master на свою восстановленную(о том как перемещать системные базы, в том числе master и MSDB, читал тут <a href="http://msdn.microsoft.com/ru-ru/library/ms345408.aspx" target="_blank">http://msdn.microsoft.com/ru-ru/library/ms345408.aspx</a>; позже выложу у себя весь текст статьи).</p>
<p>Выполнил несколько селектов &#8212; кажется, всё ок.</p>
<p>Запускаю приложение, использующие эти базы&#8230; и на одной из форм получаю красивенький exception: &#171;SQL Server detected a logical consistency-based i/o error: incorrect pageid&#187;.</p>
<p>Выполняю <strong><a href="http://t-sql.com.ua/index.php/archives/tag/dbcc-dbreindex" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  DBCC DBReindex">DBCC DBReindex</a>() </strong> &#8212; не спасло.</p>
<p>Пробую <strong><a href="http://t-sql.com.ua/index.php/archives/tag/dbcc-checkdb" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  DBCC CheckDB">DBCC CHECKDB</a>(</strong><span style="color: #ff0000;">&#8216;DatabaseName&#8217;</span><strong>) </strong>- после ряда сообщений, команда прерывается с сообщением об ошибке:</p>
<p><span style="color: #ff0000;">Msg 8967, Level 16, State 216, Line 1<br />
An internal error occurred in DBCC which prevented further processing. Please contact Product Support.</span></p>
<p>Выполнение остановилось как раз на самой большой таблице в базе.</p>
<p>Деваться некуда, запускаю</p>
<p><strong>ALTER DATABASE</strong> <span style="color: #ff0000;">&#8216;DatabaseName&#8217;</span><strong>SET SINGLE_USER</strong><br />
<strong>DBCC CHECKDB</strong>(<span style="color: #ff0000;">&#8216;DatabaseName&#8217;</span>,<em> <strong>REPAIR_REBUILD</strong></em>)<br />
<strong>ALTER DATABASE</strong> <span style="color: #ff0000;">&#8216;DatabaseName&#8217; </span><strong>SET MULTI_USER</strong></p>
<p><em> <strong>REPAIR_REBUILD-</strong></em>попробует восстановить БД без потери данных.</p>
<p>Жду завершения  выполнения команды.</p>
<p>Если не восстановит, буду пробовать</p>
<p><strong>DBCC CHECKDB</strong>(<span style="color: #ff0000;">&#8216;DatabaseName&#8217;</span>,<strong><em> <strong></strong></em>REPAIR_ALLOW_DATA_LOSS</strong>)</p>
<p>Обязательно отпишусь чем всё закончилось. Ещё не выполнял <strong>D</strong><strong>BCC CHECKDB(</strong><span style="color: #ff0000;">&#8216;DatabaseName&#8217;</span><strong>) </strong>для остальных баз.</p>
<p><a href="http://www.t-sql.com.ua/index.php/archives/220" target="_blank"><span style="color: #0000ff;">Продолжение следует&#8230;.</span></a></p>

	Метки:<a href="http://t-sql.com.ua/index.php/archives/tag/dbcc-checkdb" title="DBCC CheckDB" rel="tag">DBCC CheckDB</a>, <a href="http://t-sql.com.ua/index.php/archives/tag/dbcc-dbreindex" title="DBCC DBReindex" rel="tag">DBCC DBReindex</a>, <a href="http://t-sql.com.ua/index.php/archives/tag/ms-sql-server" title="MS SQL Server" rel="tag">MS SQL Server</a>, <a href="http://t-sql.com.ua/index.php/archives/tag/raid" title="RAID" rel="tag">RAID</a><br />

	<h4>Читайте также:</h4>
	<ul class="st-related-posts">
	<li><a href="http://t-sql.com.ua/index.php/archives/220" title="История одного восстановления БД(MS SQL Server 2005). Часть 2 (22.10.2009)">История одного восстановления БД(MS SQL Server 2005). Часть 2</a> (1)</li>
	<li><a href="http://t-sql.com.ua/index.php/archives/75" title="Изменения перестроения индексов в SQL Server. (05.08.2009)">Изменения перестроения индексов в SQL Server.</a> (1)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://t-sql.com.ua/index.php/archives/214/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Поиск оптимального маршрута в Google Maps теперь для пользователей Украины!</title>
		<link>http://t-sql.com.ua/index.php/archives/209</link>
		<comments>http://t-sql.com.ua/index.php/archives/209#comments</comments>
		<pubDate>Sat, 03 Oct 2009 07:22:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Общее]]></category>
		<category><![CDATA[API Google Maps]]></category>
		<category><![CDATA[Google maps]]></category>

		<guid isPermaLink="false">http://www.t-sql.com.ua/?p=209</guid>
		<description><![CDATA[Наконец, стала доступной долгожданная функция поиска оптимального маршрута на картах Google по территории Украины! Вы получаете возможность прокладки оптимального пути(для хотьбы или авто) по указанным пунктам назначения(до 25 точек). Сервис очень гибкий и удобный.  http://maps.google.com/ Использование данного сервиса не территории Украины стало возможным благодаря компании Transnavicom API Google Maps тут:  http://code.google.com/intl/ru/apis/maps/ Метки:API Google Maps, Google [...]]]></description>
			<content:encoded><![CDATA[<p>Наконец, стала доступной долгожданная функция поиска оптимального маршрута на картах Google по территории Украины!</p>
<p>Вы получаете возможность прокладки оптимального пути(для хотьбы или авто) по указанным пунктам назначения(до 25 точек). Сервис очень гибкий и удобный.  <a href="http://maps.google.com/" target="_blank">http://maps.google.com/</a></p>
<p>Использование данного сервиса не территории Украины стало возможным благодаря компании Transnavicom</p>
<p>API <a href="http://t-sql.com.ua/index.php/archives/tag/google-maps" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Google maps">Google Maps</a> тут: <a href="http://code.google.com/intl/ru/apis/maps/" target="_blank"> http://code.google.com/intl/ru/apis/maps/</a></p>

	Метки:<a href="http://t-sql.com.ua/index.php/archives/tag/api-google-maps" title="API Google Maps" rel="tag">API Google Maps</a>, <a href="http://t-sql.com.ua/index.php/archives/tag/google-maps" title="Google maps" rel="tag">Google maps</a><br />

	<h4>Читайте также:</h4>
	<ul class="st-related-posts">
	<li>Похожих статей не найдено</li>
	</ul>

]]></content:encoded>
			<wfw:commentRss>http://t-sql.com.ua/index.php/archives/209/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GPS Monitoring ONLINE</title>
		<link>http://t-sql.com.ua/index.php/archives/206</link>
		<comments>http://t-sql.com.ua/index.php/archives/206#comments</comments>
		<pubDate>Tue, 29 Sep 2009 11:54:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Общее]]></category>
		<category><![CDATA[GPS]]></category>
		<category><![CDATA[GPS monitoring]]></category>

		<guid isPermaLink="false">http://www.t-sql.com.ua/?p=206</guid>
		<description><![CDATA[Работаем над GPS Monitoring http://online.monitoring-gps.com.ua/. Обновились вот до версии v1.2 &#160; Как-нибудь напишу о сложностях, с которыми пришлось столкнуться при проектировании БД. Метки:GPS, GPS monitoring Читайте также: GPS мониторинг. (0)]]></description>
			<content:encoded><![CDATA[<p>Работаем над <a href="http://t-sql.com.ua/index.php/archives/tag/gps" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  GPS">GPS</a> Monitoring <a href="http://online.monitoring-gps.com.ua/">http://online.monitoring-gps.com.ua/</a>.</p>
<p>Обновились вот до версии v1.2</p>
<p>&nbsp;</p>
<p>Как-нибудь напишу о сложностях, с которыми пришлось столкнуться при проектировании БД.</p>

	Метки:<a href="http://t-sql.com.ua/index.php/archives/tag/gps" title="GPS" rel="tag">GPS</a>, <a href="http://t-sql.com.ua/index.php/archives/tag/gps-monitoring" title="GPS monitoring" rel="tag">GPS monitoring</a><br />

	<h4>Читайте также:</h4>
	<ul class="st-related-posts">
	<li><a href="http://t-sql.com.ua/index.php/archives/217" title="GPS мониторинг. (16.10.2009)">GPS мониторинг.</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://t-sql.com.ua/index.php/archives/206/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL 5.1 vs 5.4</title>
		<link>http://t-sql.com.ua/index.php/archives/204</link>
		<comments>http://t-sql.com.ua/index.php/archives/204#comments</comments>
		<pubDate>Fri, 25 Sep 2009 09:04:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Общее]]></category>
		<category><![CDATA[СУБД]]></category>
		<category><![CDATA[5.1 vs 5.4]]></category>
		<category><![CDATA[MySQL 5.4]]></category>
		<category><![CDATA[скачать]]></category>

		<guid isPermaLink="false">http://www.t-sql.com.ua/?p=204</guid>
		<description><![CDATA[За MySQL взялся и GOOGLE, что обнадёживает Читая о новостях в разработке MySQL, наткнулся на несколько интересных статеек. Всем, кто имеет непосредственное отношение к БД, да и тем, кто раздумывает над выбором СУБД, рекомендую ознакомиться: 1. http://dev.mysql.com/doc/mysql-5.4-features/en/smp-improvements.html MySQL 5.4 Scalability Improvements 2. http://dev.mysql.com/tech-resources/articles/mysql-54.html A Quick Look at MySQL 5.4; В статье приведены интересные графики сравнения [...]]]></description>
			<content:encoded><![CDATA[<p>За <a href="http://t-sql.com.ua/index.php/archives/tag/mysql" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  MySQL">MySQL</a> взялся и GOOGLE, что обнадёживает <img src='http://t-sql.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Читая о новостях в разработке MySQL, наткнулся на несколько интересных статеек. Всем, кто имеет непосредственное отношение к БД, да и тем, кто раздумывает над выбором СУБД, рекомендую ознакомиться:</p>
<p>1. <a href="http://dev.mysql.com/doc/mysql-5.4-features/en/smp-improvements.html">http://dev.mysql.com/doc/mysql-5.4-features/en/smp-improvements.html</a> <a href="http://t-sql.com.ua/index.php/archives/tag/mysql-5-4" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  MySQL 5.4">MySQL 5.4</a> Scalability Improvements</p>
<p>2. <a href="http://dev.mysql.com/tech-resources/articles/mysql-54.html ">http://dev.mysql.com/tech-resources/articles/mysql-54.html </a> A Quick Look at MySQL 5.4; В статье приведены интересные графики сравнения веток 5.1 и 5.4 по производительности. Описаны улучшения, касающиеся подзапросов(кстати те, которых ждали от ветки 6.0, но так и не дождались <img src='http://t-sql.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ), JOIN и другого.</p>
<p>В бонус можно почитать о создании plugin для MySQL(аналог расширенных хранимых процедур в <a href="http://t-sql.com.ua/index.php/archives/tag/ms-sql-server" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  MS SQL Server">MS SQL Server</a> )</p>
<p><a href="http://dev.mysql.com/doc/refman/5.1/en/plugin-api.html">http://dev.mysql.com/doc/refman/5.1/en/plugin-api.html</a></p>
<p>Скачать MySQL 5.4 можно тут: <a href="http://dev.mysql.com/downloads/mysql/5.4.html">http://dev.mysql.com/downloads/mysql/5.4.html</a></p>

	Метки:<a href="http://t-sql.com.ua/index.php/archives/tag/5-1-vs-5-4" title="5.1 vs 5.4" rel="tag">5.1 vs 5.4</a>, <a href="http://t-sql.com.ua/index.php/archives/tag/mysql-5-4" title="MySQL 5.4" rel="tag">MySQL 5.4</a>, <a href="http://t-sql.com.ua/index.php/archives/tag/download_" title="скачать" rel="tag">скачать</a><br />

	<h4>Читайте также:</h4>
	<ul class="st-related-posts">
	<li><a href="http://t-sql.com.ua/index.php/archives/138" title="Где взять MS SQL Server 2008 (16.08.2009)">Где взять MS SQL Server 2008</a> (1)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://t-sql.com.ua/index.php/archives/204/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Суммирование(конкатенация) строковых полей в MySQL</title>
		<link>http://t-sql.com.ua/index.php/archives/200</link>
		<comments>http://t-sql.com.ua/index.php/archives/200#comments</comments>
		<pubDate>Mon, 21 Sep 2009 19:59:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Общее]]></category>
		<category><![CDATA[CONCAT]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[String]]></category>

		<guid isPermaLink="false">http://www.t-sql.com.ua/?p=200</guid>
		<description><![CDATA[Недавно понадобилось объединить в одну строку поле всех записей, возвращаемых запросом. Курсором по результату запроса проходить не хотелось, и я с радостью обнаружил существование такого оператора как group_concat(). Его синтаксис: GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer &#124; col_name &#124; expr} [ASC &#124; DESC] [,col_name ...]] [SEPARATOR str_val]) DISTINCT позволяет отобрать только уникальные записи. ORDER [...]]]></description>
			<content:encoded><![CDATA[<p>Недавно понадобилось объединить в одну строку поле всех записей, возвращаемых запросом. Курсором по результату запроса проходить не хотелось, и я с радостью обнаружил существование такого оператора как</p>
<p>group_<a href="http://t-sql.com.ua/index.php/archives/tag/concat" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  CONCAT">concat</a>(). Его синтаксис:</p>
<blockquote><p>GROUP_CONCAT([DISTINCT] expr [,expr ...]</p>
<p>[ORDER BY {unsigned_integer | col_name | expr}</p>
<p>[ASC | DESC] [,col_name ...]]</p>
<p>[SEPARATOR str_val])</p></blockquote>
<p>DISTINCT позволяет отобрать только уникальные записи. ORDER BY     ASC и DESC задают порядок сортировки. С помощью  SEPARATOR str_val можно задать разделитель для записей.</p>
<p>Пример:</p>
<blockquote><p><a href="http://t-sql.com.ua/index.php/archives/tag/mysql" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  MySQL">mysql</a>&gt; SELECT student_name,</p>
<p>-&gt;     GROUP_CONCAT(DISTINCT test_score</p>
<p>-&gt;               ORDER BY test_score DESC SEPARATOR &#8216; &#8216;)</p>
<p>-&gt;     FROM student</p>
<p>-&gt;     GROUP BY student_name;</p></blockquote>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 217px; width: 1px; height: 1px;">
<pre class="programlisting">mysql&gt; <strong class="userinput"><code>SELECT student_name,</code></strong>
    -&gt;     <strong class="userinput"><code>GROUP_CONCAT(DISTINCT test_score</code></strong>
    -&gt;               <strong class="userinput"><code>ORDER BY test_score DESC SEPARATOR ' ')</code></strong>
    -&gt;     <strong class="userinput"><code>FROM student</code></strong>
    -&gt;     <strong class="userinput"><code>GROUP BY student_name;</code></strong></pre>
</div>

	Метки:<a href="http://t-sql.com.ua/index.php/archives/tag/concat" title="CONCAT" rel="tag">CONCAT</a>, <a href="http://t-sql.com.ua/index.php/archives/tag/mysql" title="MySQL" rel="tag">MySQL</a>, <a href="http://t-sql.com.ua/index.php/archives/tag/sql" title="SQL" rel="tag">SQL</a>, <a href="http://t-sql.com.ua/index.php/archives/tag/string" title="String" rel="tag">String</a><br />

	<h4>Читайте также:</h4>
	<ul class="st-related-posts">
	<li><a href="http://t-sql.com.ua/index.php/archives/86" title="Устанавливаем SQL на PHP (06.08.2009)">Устанавливаем SQL на PHP</a> (0)</li>
	<li><a href="http://t-sql.com.ua/index.php/archives/196" title="ПРоверка синтаксиса SQL online. (05.09.2009)">ПРоверка синтаксиса SQL online.</a> (0)</li>
	<li><a href="http://t-sql.com.ua/index.php/archives/176" title="Пользуемся триггерами(trigger) (28.08.2009)">Пользуемся триггерами(trigger)</a> (0)</li>
	<li><a href="http://t-sql.com.ua/index.php/archives/130" title="Имя базы данных в sql-командах MySqlDataAdapter (15.08.2009)">Имя базы данных в sql-командах MySqlDataAdapter</a> (1)</li>
	<li><a href="http://t-sql.com.ua/index.php/archives/115" title="Запрос к таблицам в разных базах данных через BDE (12.08.2009)">Запрос к таблицам в разных базах данных через BDE</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://t-sql.com.ua/index.php/archives/200/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ПРоверка синтаксиса SQL online.</title>
		<link>http://t-sql.com.ua/index.php/archives/196</link>
		<comments>http://t-sql.com.ua/index.php/archives/196#comments</comments>
		<pubDate>Fri, 04 Sep 2009 22:19:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[T-SQL]]></category>
		<category><![CDATA[Общее]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.t-sql.com.ua/?p=196</guid>
		<description><![CDATA[Случайно нашёл ссылочку http://developer.mimer.se/validator/parser200x/index.tml#parser. Тут можно проверить синтаксис SQL online. Очень простенькая штука с ограниченым кол-вом стандартов. Может быть полезной. Метки:SQL Читайте также: Устанавливаем SQL на PHP (0) Суммирование(конкатенация) строковых полей в MySQL (1) Запрос к таблицам в разных базах данных через BDE (0) SQL (0)]]></description>
			<content:encoded><![CDATA[<p>Случайно нашёл ссылочку<a href="http://developer.mimer.se/validator/parser200x/index.tml#parser"> http://developer.mimer.se/validator/parser200x/index.tml#parser</a>. Тут можно проверить синтаксис <a href="http://t-sql.com.ua/index.php/archives/tag/sql" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  SQL">SQL</a> online. Очень простенькая штука с ограниченым кол-вом стандартов. Может быть полезной.</p>

	Метки:<a href="http://t-sql.com.ua/index.php/archives/tag/sql" title="SQL" rel="tag">SQL</a><br />

	<h4>Читайте также:</h4>
	<ul class="st-related-posts">
	<li><a href="http://t-sql.com.ua/index.php/archives/86" title="Устанавливаем SQL на PHP (06.08.2009)">Устанавливаем SQL на PHP</a> (0)</li>
	<li><a href="http://t-sql.com.ua/index.php/archives/200" title="Суммирование(конкатенация) строковых полей в MySQL (21.09.2009)">Суммирование(конкатенация) строковых полей в MySQL</a> (1)</li>
	<li><a href="http://t-sql.com.ua/index.php/archives/115" title="Запрос к таблицам в разных базах данных через BDE (12.08.2009)">Запрос к таблицам в разных базах данных через BDE</a> (0)</li>
	<li><a href="http://t-sql.com.ua/index.php/archives/52" title="SQL (04.08.2009)">SQL</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://t-sql.com.ua/index.php/archives/196/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XML в Delphi</title>
		<link>http://t-sql.com.ua/index.php/archives/184</link>
		<comments>http://t-sql.com.ua/index.php/archives/184#comments</comments>
		<pubDate>Sat, 29 Aug 2009 20:39:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.t-sql.com.ua/?p=184</guid>
		<description><![CDATA[В прошлый раз написал об XML+C#, а о любимом Delphi и забыл вовсе В Delphi работать с ХМЛ документом немного сложнее. Я предпочитаю следующий способ&#8230; С помощью меню Project -&#62; Type Library Import импортируем стандартную библиотеку microsoft msxml.dll(ну или msxml6.dll, зависит от версии), поддерживающую модель DOM. При этом генерируется msxml_tlb.pas &#8212; файл описания COM сервера. [...]]]></description>
			<content:encoded><![CDATA[<p>В <a href="http://www.t-sql.com.ua/index.php/archives/181" target="_blank">прошлый раз написал об XML+C#</a>, а о любимом <a href="http://t-sql.com.ua/index.php/archives/tag/delphi" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Delphi">Delphi</a> и забыл вовсе <img src='http://t-sql.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>В Delphi работать с ХМЛ документом немного сложнее. Я предпочитаю следующий способ&#8230;</p>
<p>С помощью меню Project -&gt; Type Library Import импортируем стандартную библиотеку microsoft msxml.dll(ну или msxml6.dll, зависит от версии), поддерживающую модель <a href="http://t-sql.com.ua/index.php/archives/tag/dom" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  DOM">DOM</a>. При этом генерируется msxml_tlb.pas &#8212; файл описания COM сервера. С подготовкой всё <img src='http://t-sql.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Чтобы использовать в вашей программе, просто пропишите в разделе USES имя файла MSXML_TLB.</p>
<p>В файле MSXML_TLB.pas описаны все интерфейсы, константы и соклассы  COM-сервера.</p>
<p>Таким образом, простейший пример будет следующего вида:</p>
<p><span id="more-184"></span></p>
<pre class="brush: delphi">

procedure tfrmcena.downloadxml;
var
Doc1     : IXMLDOMDocument;
coDoc   : CoDOMDocument;
nods      :IXMLDOMNodeList;

begin

// создаём экземпляр
codoc.NewInstance;
doc1:=codoc.Create;

// загружаем файл
doc1.load(filename);

// получаем колекцию IXMLDOMNodeList
nods:=doc1.getElementsByTagName(&#039;NODENAME&#039;&#039;);

// other delphi code

end;
</pre>
<p>Описание DOM объектов:</p>
<table border="1" cellspacing="0" cellpadding="0" width="500">
<tbody>
<tr>
<td colspan="2" valign="top">
<p align="center"><strong>Объект   XMLDOMDocument</strong></p>
</td>
</tr>
<tr>
<td colspan="2" valign="top">Представляет верхний уровень объектной иерархии и содержит   методы для работы с документом: его загрузки, анализа, создания в нем   элементов, атрибутов, комментариев и т.д. .</td>
</tr>
<tr>
<td colspan="2" valign="top"><strong>Свойства</strong></td>
</tr>
<tr>
<td width="39%" valign="top"><strong>Async</strong></td>
<td width="61%" valign="top">Свойство идентифицирующее текущий режим обработки</td>
</tr>
<tr>
<td width="39%" valign="top"><strong>ParseError </strong></td>
<td width="61%" valign="top">Возвращает ссылку на объект обработки ошибки   XMLDOMParseError</td>
</tr>
<tr>
<td width="39%" valign="top"><strong>Включение &#8212; выключение верификации документа. </strong></td>
<td></td>
</tr>
<tr>
<td width="39%" valign="top"><strong>url </strong></td>
<td width="61%" valign="top">Возвращает URL документа</td>
</tr>
<tr>
<td width="39%" valign="top"><strong>documentElement </strong></td>
<td width="61%" valign="top">Содержит ссылку на корневой элемент документа в виде   объекта XMLDOMElement.</td>
</tr>
<tr>
<td colspan="2" valign="top"><strong>Методы</strong></td>
</tr>
<tr>
<td width="39%" valign="top"><strong>load(url)<br />
loadXML(xmlString)</strong></td>
<td width="61%" valign="top">Загружает <a href="http://t-sql.com.ua/index.php/archives/tag/xml" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  XML">XML</a> документ,</td>
</tr>
<tr>
<td width="39%" valign="top"><strong>save(objTarget)</strong></td>
<td width="61%" valign="top">Сохраняет XML документ в файле</td>
</tr>
<tr>
<td width="39%" valign="top"><strong>abort </strong></td>
<td width="61%" valign="top">Прерывание процесса загрузки и обработки документа.</td>
</tr>
<tr>
<td width="39%" valign="top"><strong>createAttribute (name)</strong></td>
<td width="61%" valign="top">Создает для текущего элемента новый атрибут с указанным   именем.</td>
</tr>
<tr>
<td width="39%" valign="top"><strong>createNode(Type, name, nameSpaceURI)</strong></td>
<td width="61%" valign="top">Создает узел указанного типа и названия</td>
</tr>
<tr>
<td width="39%" valign="top"><strong>createElement(tagName) </strong></td>
<td width="61%" valign="top">Создает элемент документа с указанным названием.</td>
</tr>
<tr>
<td width="39%" valign="top"><strong>createTextNode(data) </strong></td>
<td width="61%" valign="top">Создает текст внутри документа</td>
</tr>
<tr>
<td width="39%" valign="top"><strong>getElementsByTagName(tagname)</strong></td>
<td width="61%" valign="top">Возвращает ссылку на коллекцию элементов документа с   заданным именем</td>
</tr>
<tr>
<td width="39%" valign="top"><strong>nodeFromID(idString)</strong></td>
<td width="61%" valign="top">Поиск элемента по идентификатору</td>
</tr>
</tbody>
</table>
<table border="1" cellspacing="0" cellpadding="0" width="500">
<tbody>
<tr>
<td colspan="2" valign="top">
<p align="center"><strong>Объект   XMLDOMNode</strong></p>
</td>
</tr>
<tr>
<td colspan="2" valign="top">Объект XMLDOMNode, реализующий базовый DOM интерфейс <strong>Node</strong>,   предназначен для манипулирования с отдельным узлом дерева документа. Его   свойства и методы позволяют получать и изменять полную информацию о текущем   узле &#8212; его тип, название, полное название, его содержимое, список дочерних   элементов и т.д.</td>
</tr>
<tr>
<td colspan="2" valign="top"><strong>Свойства</strong></td>
</tr>
<tr>
<td width="10" valign="top"><strong>nodeName, baseName </strong></td>
<td width="65%" valign="top">Возвращает название текущего узла.</td>
</tr>
<tr>
<td width="35%" valign="top"><strong>prefix</strong></td>
<td width="65%" valign="top">Возвращает Namespace префикс.</td>
</tr>
<tr>
<td width="35%" valign="top"><strong>dataType </strong></td>
<td width="65%" valign="top">Определяет тип содержимого текущего узла</td>
</tr>
<tr>
<td width="35%" valign="top"><strong>nodeType, nodeTypeString</strong></td>
<td width="65%" valign="top">Возвращает тип текущего узла:</td>
</tr>
<tr>
<td width="35%" valign="top"><strong>attributes </strong></td>
<td width="65%" valign="top">Возвращает список атрибутов текущего узла в виде коллекции   XMLDOMNamedNodeMap.</td>
</tr>
<tr>
<td width="35%" valign="top"><strong>text</strong></td>
<td width="65%" valign="top">Возвращает содержимое текущего поддерева в виде текста</td>
</tr>
<tr>
<td width="35%" valign="top"><strong>xml</strong></td>
<td width="65%" valign="top">Возвращает XML-представление текущего поддерева.</td>
</tr>
<tr>
<td width="35%" valign="top"><strong>nodeValue </strong></td>
<td width="65%" valign="top">Возвращает содержимое текущего узла.</td>
</tr>
<tr>
<td width="35%" valign="top"><strong>childNodes </strong></td>
<td width="65%" valign="top">Возвращает список дочерних элементов в виде   XMLDOMNodeList.</td>
</tr>
<tr>
<td width="35%" valign="top"><strong>firstChild, lastChild </strong></td>
<td width="65%" valign="top">Возвращает первый/последний дочерний элемент</td>
</tr>
<tr>
<td width="35%" valign="top"><strong>previousSibling ,nextSibling </strong></td>
<td width="65%" valign="top">Возвращает предыдущий /следующий сестринский элемент.</td>
</tr>
<tr>
<td width="35%" valign="top"><strong>parentNode </strong></td>
<td width="65%" valign="top">Содержит ссылку на родительский элемент.</td>
</tr>
<tr>
<td width="35%" valign="top"><strong>ownerDocument </strong></td>
<td width="65%" valign="top">Возвращает указатель на документ, в котором находится   текущий узел.</td>
</tr>
<tr>
<td colspan="2" valign="top"><strong>Методы</strong></td>
</tr>
<tr>
<td width="35%" valign="top"><strong>appendChild(newChild)</strong></td>
<td width="65%" valign="top">Добавляет текущему узлу новый дочерний элемент.</td>
</tr>
<tr>
<td width="35%" valign="top"><strong>insertBefore(newChild, refChild) </strong></td>
<td width="65%" valign="top">Вставляет дочерний узел, располагая его в текущем   поддереве &#171;левее&#187; узла, указанного параметром refChild.</td>
</tr>
<tr>
<td width="35%" valign="top"><strong>cloneNode (deep)</strong></td>
<td width="65%" valign="top">Создание копии текущего элемента.</td>
</tr>
<tr>
<td width="35%" valign="top"><strong>getAttribute</strong><strong>(name)<br />
getAttributeNode (name)<br />
setAttribute(name, value)<br />
setAttributeNode(XMLDOMAttribute)</strong></td>
<td width="65%" valign="top">Доступ к атрибутам (создание, чтение, запись) объекта.   Name &#8212; имя атрибута, value &#8212; его значение. Возращает значение объект   XMLDOMAttribute.</td>
</tr>
<tr>
<td width="35%" valign="top"><strong>replaceChild(newChild,   oldChild) removeChild(oldChild)</strong></td>
<td width="65%" valign="top">Замена объекта oldChild текущего списка дочерних объектов   на newChild. Удаление объекта oldChild</td>
</tr>
<tr>
<td width="35%" valign="top"><strong>selectNodes(patternString)   selectSingleNode(patternString)</strong></td>
<td width="65%" valign="top">Возвращает объект XMLDOMNodeList, выбранное по шаблону   поиска или первый узел</td>
</tr>
<tr>
<td width="35%" valign="top"><strong>transformNode(stylesheet)<br />
transformNodeToObject(stylesheet, outputObject)</strong></td>
<td width="65%" valign="top">Назначает стилевую таблицу для поддерева текущего узла и   возвращает строку &#8212; результат обработки. В качестве параметра передается   ссылка на объект DOMDocument, в котором находятся XSL инструкции.</td>
</tr>
</tbody>
</table>
<table border="1" cellspacing="0" cellpadding="0" width="500">
<tbody>
<tr>
<td colspan="2" valign="top">
<p align="center"><strong>Объект   XMLDOMNodeList</strong></p>
</td>
</tr>
<tr>
<td colspan="2" valign="top">Представляет собой список узлов &#8212; поддеревья и содержит методы,   при помощи которых можно организовать процедуру обхода дерева.</td>
</tr>
<tr>
<td width="35%" valign="top"><strong>length</strong></td>
<td width="65%" valign="top">число элементов списка узлов</td>
</tr>
<tr>
<td width="35%" valign="top"><strong>item(i)</strong></td>
<td width="65%" valign="top">Выбор i-того элемента из списка. Возвращает объект   XMLDOMNode</td>
</tr>
<tr>
<td width="35%" valign="top"><strong>nextNode()</strong></td>
<td width="65%" valign="top">Выбор следующего элемента в списке.</td>
</tr>
</tbody>
</table>

	Метки:<a href="http://t-sql.com.ua/index.php/archives/tag/delphi" title="Delphi" rel="tag">Delphi</a>, <a href="http://t-sql.com.ua/index.php/archives/tag/dom" title="DOM" rel="tag">DOM</a>, <a href="http://t-sql.com.ua/index.php/archives/tag/xml" title="XML" rel="tag">XML</a><br />

	<h4>Читайте также:</h4>
	<ul class="st-related-posts">
	<li><a href="http://t-sql.com.ua/index.php/archives/181" title="Работаем c XML(англ. eXtensible Markup Language- расширяемый язык разметки) в C# (29.08.2009)">Работаем c XML(англ. eXtensible Markup Language- расширяемый язык разметки) в C#</a> (1)</li>
	<li><a href="http://t-sql.com.ua/index.php/archives/115" title="Запрос к таблицам в разных базах данных через BDE (12.08.2009)">Запрос к таблицам в разных базах данных через BDE</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://t-sql.com.ua/index.php/archives/184/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Работаем c XML(англ. eXtensible Markup Language- расширяемый язык разметки) в C#</title>
		<link>http://t-sql.com.ua/index.php/archives/181</link>
		<comments>http://t-sql.com.ua/index.php/archives/181#comments</comments>
		<pubDate>Sat, 29 Aug 2009 13:47:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[DataSet]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XmlDocument]]></category>
		<category><![CDATA[XmlNode]]></category>

		<guid isPermaLink="false">http://www.t-sql.com.ua/?p=181</guid>
		<description><![CDATA[Ни для кого не секрет, что XML очень удобен для хранения сериализованных объектов, прочих данных. Microsoft, например очень плотно использует XML для сериализации. Очень удобной они сделали и работу с XML документами в C#. Документ XML можно открыть и прочесть из него данные очень просто. В основном я пользуюсь следующими способами: 1) using System.Xml; ///////////////////// [...]]]></description>
			<content:encoded><![CDATA[<p>Ни для кого не секрет, что <a href="http://t-sql.com.ua/index.php/archives/tag/xml" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  XML">XML</a> очень удобен для хранения сериализованных объектов, прочих данных. Microsoft, например очень плотно использует <a href="http://t-sql.com.ua/index.php/archives/tag/xml" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  XML">XML</a> для сериализации. Очень удобной они сделали и работу с <a href="http://t-sql.com.ua/index.php/archives/tag/xml" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  XML">XML</a> документами в <a href="http://t-sql.com.ua/index.php/archives/tag/c" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  C#">C#</a>. Документ XML можно открыть и прочесть из него данные очень просто. В основном я пользуюсь следующими способами:</p>
<p><span id="more-181"></span></p>
<p>1)</p>
<blockquote><p>using System.Xml;</p>
<p>/////////////////////</p>
<p>void readXML()</p>
<p>{</p>
<p><a href="http://t-sql.com.ua/index.php/archives/tag/xmldocument" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  XmlDocument">XmlDocument</a> doc = new <a href="http://t-sql.com.ua/index.php/archives/tag/xmldocument" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  XmlDocument">XmlDocument</a>();<br />
doc.Load(XMLfilename_or_URL);<br />
XmlNodeList listnods = doc.GetElementsByTagName(&#171;NAMENODE&#187;);<br />
foreach (<a href="http://t-sql.com.ua/index.php/archives/tag/xmlnode" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  XmlNode">XmlNode</a> node in listnods);<br />
{</p>
<p>// Some C# Code</p>
<p>}</p>
<p>}</p></blockquote>
<p>XmlDocument, XmlNode имеют множество методов и свойств для простой работы с документом.</p>
<p>2)</p>
<p>Второй вариант абсолютно прост и удобен. Он загружает ХМЛ документ в <a href="http://t-sql.com.ua/index.php/archives/tag/dataset" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  DataSet">DataSet</a>:</p>
<blockquote><p>DataSet ds = new DataSet();<br />
ds.ReadXml(XMLfilename_or_URL);</p></blockquote>
<p>Если вы посмотрите в дебаге на переменную ds, в которую вы загрузили ХМЛ файл,  то увидите, что ds.ReadXml() преобразовал содержимое в колекцию DataTable и теперь к ним можно обращаться с помощью свойства Tables  ds.Tables["tablename"]. Таким образом, вам не требуется особых знаний и навыков работы с XML, чтобы выполнить текущую задачу.</p>
<p>Для сохранения ХМЛ обратитесь к методу WriteXml(filename) датасета или Save() у XmlDocument&#8217;a</p>

	Метки:<a href="http://t-sql.com.ua/index.php/archives/tag/c" title="C#" rel="tag">C#</a>, <a href="http://t-sql.com.ua/index.php/archives/tag/dataset" title="DataSet" rel="tag">DataSet</a>, <a href="http://t-sql.com.ua/index.php/archives/tag/xml" title="XML" rel="tag">XML</a>, <a href="http://t-sql.com.ua/index.php/archives/tag/xmldocument" title="XmlDocument" rel="tag">XmlDocument</a>, <a href="http://t-sql.com.ua/index.php/archives/tag/xmlnode" title="XmlNode" rel="tag">XmlNode</a><br />

	<h4>Читайте также:</h4>
	<ul class="st-related-posts">
	<li><a href="http://t-sql.com.ua/index.php/archives/258" title="Отправка почты в C# (03.02.2012)">Отправка почты в C#</a> (0)</li>
	<li><a href="http://t-sql.com.ua/index.php/archives/16" title="Медленный DataGridView в C#.NET (03.08.2009)">Медленный DataGridView в C#.NET</a> (0)</li>
	<li><a href="http://t-sql.com.ua/index.php/archives/130" title="Имя базы данных в sql-командах MySqlDataAdapter (15.08.2009)">Имя базы данных в sql-командах MySqlDataAdapter</a> (1)</li>
	<li><a href="http://t-sql.com.ua/index.php/archives/154" title="Еще один баг Visual Studio. Designer и TabControl не дружат. (18.08.2009)">Еще один баг Visual Studio. Designer и TabControl не дружат.</a> (0)</li>
	<li><a href="http://t-sql.com.ua/index.php/archives/108" title="Быстрый массовый insert данных. (10.08.2009)">Быстрый массовый insert данных.</a> (2)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://t-sql.com.ua/index.php/archives/181/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
