<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2853904</guid>
        <pubDate>Tue, 15 Mar 2011 16:01:46 +0000</pubDate>
        <title>SQL error 804</title>
        <link>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2853904</link>
        <description><![CDATA[Fr0sT: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=263550&view=findpost&p=2853902'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>sansans &#064; <time class="tag-quote__quoted-time" datetime="2011-03-15T18:51:31+03:00">15.03.11, 15:51</time></span><div class='quote '>Все будет точно так же</div></div><br>
Не совсем. Если DecimalSeparator - точка, а вводят запятую, то дурак - юзер. А если DecimalSeparator - запятая, и вводят запятую, но прога самовольно поменяла DecimalSeparator на точку, то дурак - программер. Вот и вся разница.]]></description>
        <author>Fr0sT</author>
        <category>Delphi: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2853902</guid>
        <pubDate>Tue, 15 Mar 2011 15:51:31 +0000</pubDate>
        <title>SQL error 804</title>
        <link>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2853902</link>
        <description><![CDATA[sansans: А этот &quot;БАМС&#33; Эксепшн&quot; разве не будет, если в региональных настройках установлена точка, DecimalSeparator не применяем, а вводим число с запятой? Все будет точно так же.<br><br>Приходится повторять, что проблема с региональными настройками будет всегда и разработчик, хочет он или не хочет, обязан её учитывать. Вот и все. А как он это будет делать с DecimalSeparator, через TFormatSettings, установкой у клиента виндовых настроек или, наконец, проверкой чего пользователь вводит в Edit - это его личное дело.]]></description>
        <author>sansans</author>
        <category>Delphi: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2853756</guid>
        <pubDate>Tue, 15 Mar 2011 13:35:38 +0000</pubDate>
        <title>SQL error 804</title>
        <link>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2853756</link>
        <description><![CDATA[Fr0sT: <strong class='tag-b'>sansans</strong>, ты привел прием, а я написал, как этот прием максимально изолировать во избежание самых разнообразных глюков.<br>
Простой пример и без всякого копипаста.<br>
1) Ставим DecimalSeparator = &#39;.&#39;<br>
2) В Edit1 вводится некое float число. Разумеется, с региональным разделителем<br>
3) f := FloatToStr(Edit1.Text) =&gt; БАМС&#33; Эксепшен]]></description>
        <author>Fr0sT</author>
        <category>Delphi: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2853564</guid>
        <pubDate>Tue, 15 Mar 2011 09:41:47 +0000</pubDate>
        <title>SQL error 804</title>
        <link>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2853564</link>
        <description><![CDATA[Bas: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=263550&view=findpost&p=2853510'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Fr0sT &#064; <time class="tag-quote__quoted-time" datetime="2011-03-15T08:59:15+00:00">15.03.11, 08:59</time></span><div class='quote '>бухгалтеры столкнутся с невозможностью копипейста прога &lt;-&gt; эксель</div></div><br>
Если поле текстовое то столкнутся, если числовое то нет.]]></description>
        <author>Bas</author>
        <category>Delphi: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2853558</guid>
        <pubDate>Tue, 15 Mar 2011 09:37:55 +0000</pubDate>
        <title>SQL error 804</title>
        <link>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2853558</link>
        <description><![CDATA[sansans: Согласен, &quot;копипейста&quot; прямого не получится (и то, правда, не всегда; к тому же не везде и требуется). Но это не самое страшное зло - на самом деле мало кто пользуется прямым (ручным) &quot;копипейстом&quot;. А в программе этот пресловутый &quot;копипейст&quot; можно исправить как нужно.<br>Но, надо заметить, я привел прием, которые позволяет УЖЕ ГОТОВОЕ приложение исправить малой кровью.<br>И, наконец, полностью присоединяюсь к авторам постов, которые проповедуют делать все как надо с самого начала.]]></description>
        <author>sansans</author>
        <category>Delphi: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2853510</guid>
        <pubDate>Tue, 15 Mar 2011 08:59:15 +0000</pubDate>
        <title>SQL error 804</title>
        <link>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2853510</link>
        <description><![CDATA[Fr0sT: <strong class='tag-b'>sansans</strong>, направление достаточно верное, но не совсем. Описанные тобой переменные повлияют на ВСЮ программу в целом. То есть, из-за внутренностей SQL, к примеру, бухгалтеры столкнутся с невозможностью копипейста прога &lt;-&gt; эксель/1с/калькулятор. Это не айс совершенно. А решение - в замечательных перегруженных функциях Format, FormatDateTime, ... с параметром типа TFormatSettings. Туда можно подсунуть любое нужное значение региональных настроек без влияния на остальные части программы. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2011-03-15T09:01:35+00:00">15.03.11, 09:01</time></span></span><br>
К сожалению, с обратными функциями StrTo*** такого блага не предусмотрено :(]]></description>
        <author>Fr0sT</author>
        <category>Delphi: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2853467</guid>
        <pubDate>Tue, 15 Mar 2011 08:14:56 +0000</pubDate>
        <title>SQL error 804</title>
        <link>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2853467</link>
        <description><![CDATA[sansans: Здесь я с вами резко соглашусь.<br>Но ведь и речь то шла именно о том, чтобы выбранные пользователем региональные настройки никоим образом не менялись. И вышеописанный прием как раз это и позволяет делать разработчику, который пишет приложения на Delphi с использованием SQL СУБД.<br>Скорее всего, вы не поняли, что изменения значений глобальных переменных в Delphi никак не затрагивает региональные настройки в винде и наш пользователь как имел их в первоначальном виде, так и имеет.<br>Для всех своих программ. А при конвертировании числа в строку &quot;срабатывают&quot; измененные гл. переменные.<br>Т.е. плохого мы ничего не делаем и &quot;больно бить по рукам&quot; за то что в Delphi много чего предусмотрено, а программеры это использует, думаю, не стоит.]]></description>
        <author>sansans</author>
        <category>Delphi: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2853418</guid>
        <pubDate>Tue, 15 Mar 2011 07:25:58 +0000</pubDate>
        <title>SQL error 804</title>
        <link>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2853418</link>
        <description><![CDATA[joiner: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=263550&view=findpost&p=2853372'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>sansans &#064; <time class="tag-quote__quoted-time" datetime="2011-03-15T06:53:38+00:00">15.03.11, 06:53</time></span><div class='quote '>Позвольте осведомиться, уважаемый joiner, в чем же крамола этого метода решения проблемы?</div></div><br>
Дело в том что когда пользователь у себя на компе выбирает те или иные региональные настройки он рассчитывает на то что все программы будут использовать именно их а не устанавливать разделители и форматы на свой лад.]]></description>
        <author>joiner</author>
        <category>Delphi: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2853417</guid>
        <pubDate>Tue, 15 Mar 2011 07:25:54 +0000</pubDate>
        <title>SQL error 804</title>
        <link>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2853417</link>
        <description><![CDATA[Bas: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=263550&view=findpost&p=2853331'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>joiner &#064; <time class="tag-quote__quoted-time" datetime="2011-03-15T05:54:21+00:00">15.03.11, 05:54</time></span><div class='quote '>нечего вмешиваться в эти настройки</div></div><br>
Это локальные настройки программы.]]></description>
        <author>Bas</author>
        <category>Delphi: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2853372</guid>
        <pubDate>Tue, 15 Mar 2011 06:53:38 +0000</pubDate>
        <title>SQL error 804</title>
        <link>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2853372</link>
        <description><![CDATA[sansans: Позвольте осведомиться, уважаемый <strong class='tag-b'>joiner</strong>, в чем же крамола этого метода решения проблемы?<br>
А то только эмоции, без аргументов.<br>
В справке Delphi нет ни гу-гу про то что нельзя &quot;вмешиваться в эти настройки&quot;. Кстати, никакая это не настройка; при запуске любой дельфийской программы значения этих переменных берутся из региональных настроек и никаким образом не заменяют их в винде.<br>
Да и при многолетней практике такого вмешательства не было замечено никаких отклонений от нормальной роботы программ.<br>
И, потом, я не призываю применять изменение значений глобальных переменных вместо нормального программирования. Это лишь способ избежать непомерных трудозатрат в некоторых ситуациях (если заметили, конечно).]]></description>
        <author>sansans</author>
        <category>Delphi: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2853331</guid>
        <pubDate>Tue, 15 Mar 2011 05:54:21 +0000</pubDate>
        <title>SQL error 804</title>
        <link>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2853331</link>
        <description><![CDATA[joiner: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=263550&view=findpost&p=2853320'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>sansans &#064; <time class="tag-quote__quoted-time" datetime="2011-03-15T05:21:08+00:00">15.03.11, 05:21</time></span><div class='quote '>Достаточно в один из модулей добавить ниже приведенные строчки и все будет в порядке - не потребуется лазать в региональные настройки, ни переделывать код:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;...</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;initialization</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;DecimalSeparator := &#39;.&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;DateSeparator := &#39;.&#39;; //на всякий случай</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end.</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
DecimalSeparator и пр. глобальные переменные. Через них можно заменять региональные значения на время работы программы.<br>
</div></div><br>
<br>
За такое надо бить больно по руках ибо нечего вмешиваться в эти настройки. Надо сразу писать нормально чтобы потом получалось подобных ситуаций, а если уж  такое случилось то ни в коем случае не применять этот метод решения.]]></description>
        <author>joiner</author>
        <category>Delphi: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2853320</guid>
        <pubDate>Tue, 15 Mar 2011 05:21:08 +0000</pubDate>
        <title>SQL error 804</title>
        <link>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2853320</link>
        <description><![CDATA[sansans: Дело, конечно, прошлое, но как показывают наблюдения, многие и сейчас, особенно начинающие, натыкаются на грабли &quot;РЕГИОНАЛЬНЫХ НАСТРОЕК&quot; и, как следствие: &quot;Count of read-write columns does not equal count of values&quot;.<br>
Пишет, пишет программер. Понаписал несколько тыщ строк, а тут, бац и облом: &quot;на одной машинке работает, на другой не работает, ПАМАГИТЕ&#33;&quot;<br>
Параметры то, как советует <strong class='tag-b'>Игорь Акопян</strong>, дело хорошее, но не всегда есть возможность или желание переделывать исходники.<br>
<br>
А есть простой выход. <br>
Достаточно в один из модулей добавить ниже приведенные строчки и все будет в порядке - не потребуется лазать в региональные настройки, ни переделывать код:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">...</div><div class="code_line">initialization</div><div class="code_line">&nbsp;&nbsp;DecimalSeparator := &#39;.&#39;;</div><div class="code_line">&nbsp;&nbsp;DateSeparator := &#39;.&#39;; //на всякий случай</div><div class="code_line">end.</div></ol></div></div></div></div><br>
<strong class='tag-b'>DecimalSeparator</strong> и пр. глобальные переменные. Через них можно заменять региональные значения на время работы программы.<br>
<br>
Новичкам, работающим с SQL, надо пояснить, что в Delphi разделитель целой и дробной части чисел всегда является точка. Текст запроса - это строка, следовательно, при &quot;ручной сборке&quot; запроса числа необходимо преобразовывать в строковое представление. Этим в Delphi занимаются несколько функций.<br>
Некоторые из них при преобразовании берут делитель из региональных настроек, а в них значением делителя может быть запятая. В тексте запроса тогда вставляется лишняя (или лишние, но достаточно одной) запятая, которая и приводит к ошибке.<br>
Те кто исповедует применения параметров не будут сталкиваться с подобной ошибкой, т.к. параметры имеют числовой или вариантный тип (в случае чисел) и присвоение параметру значения не требует преобразования в строку.]]></description>
        <author>sansans</author>
        <category>Delphi: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2181829</guid>
        <pubDate>Thu, 29 Jan 2009 07:29:38 +0000</pubDate>
        <title>SQL error 804</title>
        <link>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2181829</link>
        <description><![CDATA[AlexFSM: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=263550&view=findpost&p=2181826'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Игорь Акопян &#064; <time class="tag-quote__quoted-time" datetime="2009-01-29T07:23:49+00:00">29.01.09, 07:23</time></span><div class='quote '>параметры использовать&#33;</div></div><br>
Да? Надо попробовать. :)]]></description>
        <author>AlexFSM</author>
        <category>Delphi: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2181826</guid>
        <pubDate>Thu, 29 Jan 2009 07:23:49 +0000</pubDate>
        <title>SQL error 804</title>
        <link>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2181826</link>
        <description><![CDATA[Игорь Акопян: [телепатический локатор включен]<br>
уж не собираем ли мы вручную SQL-запрос, содержащий вещественные числа/даты, вместо использования параметров?<br>
[телепатический локатор выключен] <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2009-01-29T07:24:48+00:00">29.01.09, 07:24</time></span></span><br>
ага, угадал - не региональные настройки надо менять, а параметры использовать&#33;]]></description>
        <author>Игорь Акопян</author>
        <category>Delphi: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2181816</guid>
        <pubDate>Thu, 29 Jan 2009 07:12:57 +0000</pubDate>
        <title>SQL error 804</title>
        <link>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2181816</link>
        <description><![CDATA[AlexFSM: И так, после мозгового штурма проблема решилась, ошибка &quot;SQL Error cod -804 Count of read-write columns does not equal count of values&quot; была ликвидирована путем смены РЕГИОНАЛЬНЫХ НАСТРОЕК (разделитель целой и дробной части) вместо &quot;,&quot; надо было поставить &quot;.&quot;]]></description>
        <author>AlexFSM</author>
        <category>Delphi: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2181491</guid>
        <pubDate>Wed, 28 Jan 2009 19:13:12 +0000</pubDate>
        <title>SQL error 804</title>
        <link>https://forum.sources.ru/index.php?showtopic=263550&amp;view=findpost&amp;p=2181491</link>
        <description><![CDATA[AlexFSM: Доброго времени суток&#33;<br>Сделал программку для работы с БД FireBird 2.0.1 Программа поочередно конектиться к разным БД и проверяет информацию. Подключение через IBDatabase<br>Путь к БД береться через диологовое окно.<br>У меня на компьюторе она работает нормально, принес я ее на работу и тут она начала чихать и кашлать.<br>На работе на моей машине НЕ установлен FireBird, программа отказывалась открываться вообще. Скопировов в папку с программой gds32.dll, начала открываться, но не хотела выполнять подключене к БД, постоянно вылетела ошибка &quot;Unavailable database&quot;. Но к сожелению эту проблему я так и не решил, поставил FireBird 2.0.1 на рабочую машинку. После установки FireBird 2.0.1 программа стала подключаться к БД и выполнять возложенную на нее миссию, счастье мое длилось не долго. Так как после обработки 5 записи в БД она выдала следующую ошибку &quot;SQL Error cod -804 Count of read-write columns does not equal count of values&quot;, проверил записи в БД, ничего подозрительного не обнаружил, прийдя домой первым делом полез в код программы, но как не странно там тоже все нормально. Запустил программу, все работает как надо и без ошибок.<br>В чем может быть дело?]]></description>
        <author>AlexFSM</author>
        <category>Delphi: Базы данных</category>
      </item>
	
      </channel>
      </rss>
	